NetBSDでKVMを動かしていますが、どうにもディスクの速度がもっさりです。
そこで、同じ仮想科環境でLinuxなみの速度を目標に、まずはベンチマークをして現状把握をすることにしました。
用意した環境は次の三つで、リファレンスとなるのはx86_64なUbuntuと我らがNetBSD/amd64, NetBSD/i386です。
ベンチマークに使ったのはdbenchです。ddベンチでもよいかと思っていましたが、せっかくなので専用のベンチマークを使うかなと思いました。ちなみにdbenchを選んだ理由は特になく、pkgsrcをあさってdiskのdかなーと思ってみたらそうだった、ぐらいの軽いノリです。
あっ、NetBSD/amd64はhttp://www.tokuda.net/diary/KVM/NetBSDinstallにも書いたとおりACPI, MPの両方をOFFにして動作させています。
結果は次のとおり。
なんというか、ちょっとびっくりするくらいの差がついています。NetBSD/i386はなにかの測定ミスかと思うくらいの違いです。
また、NetBSD/amd64も速度が安定せず、徐々にスループットをあげて35MB/sぐらいで安定したと思いきや、徐々に下がってきて、結果として28MB/sぐらいになるという挙動です。
このぐらい差がつくと、ちょろっとしたチューニングで劇的に改善するんじゃないの? とかあさはかな考えでdkctlによるstrategyの変更を実施してみました。具体的にはpriocscanからfcfsです。
結果、26.1531 MB/s って下がってしまいました。
これにめげず、ジャーナルしないほうが速いかもとWAPBLをOFFに (mountオプションからlogを削除) してみました。
結果、22.5587 MB/s ってもっと下がってしまいました。WAPBLの説明を改めて読むと、asyncよりも少し遅い、と書いてあるくらいですから当たり前ですね。
そのあとも何度かベンチマークを走らせたのですが、どんどん結果が悪くなる一方です。
これはちょっとおかしい傾向で、悪いなら悪いなりに数字が安定してくれないと困ってしまいます。
ファイルシステムのチューニング以外の見落としがある可能性も高いということで、今日はここまで。
そこで、同じ仮想科環境でLinuxなみの速度を目標に、まずはベンチマークをして現状把握をすることにしました。
用意した環境は次の三つで、リファレンスとなるのはx86_64なUbuntuと我らがNetBSD/amd64, NetBSD/i386です。
ベンチマークに使ったのはdbenchです。ddベンチでもよいかと思っていましたが、せっかくなので専用のベンチマークを使うかなと思いました。ちなみにdbenchを選んだ理由は特になく、pkgsrcをあさってdiskのdかなーと思ってみたらそうだった、ぐらいの軽いノリです。
- dbenchについて
- dbench-3.04を使用
- client.txtは同一
- 実行コマンドはdbench -c client.txt 5
- diskについて
- すべてvirtioを使用
- linuxは(/dev/vda1 on / type ext4 (rw,errors=remount-ro))
- NetBSDは(/dev/ld0a on / type ffs (log, local))
- すべてqemu-imgによるイメージファイル
あっ、NetBSD/amd64はhttp://www.tokuda.net/diary/KVM/NetBSDinstallにも書いたとおりACPI, MPの両方をOFFにして動作させています。
結果は次のとおり。
OS | スループット(MB/s) |
---|---|
Ubuntu | 350.458 |
NetBSD/i386 | 6.043 |
NetBSD/amd64 | 28.191 |
また、NetBSD/amd64も速度が安定せず、徐々にスループットをあげて35MB/sぐらいで安定したと思いきや、徐々に下がってきて、結果として28MB/sぐらいになるという挙動です。
このぐらい差がつくと、ちょろっとしたチューニングで劇的に改善するんじゃないの? とかあさはかな考えでdkctlによるstrategyの変更を実施してみました。具体的にはpriocscanからfcfsです。
結果、26.1531 MB/s って下がってしまいました。
これにめげず、ジャーナルしないほうが速いかもとWAPBLをOFFに (mountオプションからlogを削除) してみました。
結果、22.5587 MB/s ってもっと下がってしまいました。WAPBLの説明を改めて読むと、asyncよりも少し遅い、と書いてあるくらいですから当たり前ですね。
そのあとも何度かベンチマークを走らせたのですが、どんどん結果が悪くなる一方です。
これはちょっとおかしい傾向で、悪いなら悪いなりに数字が安定してくれないと困ってしまいます。
ファイルシステムのチューニング以外の見落としがある可能性も高いということで、今日はここまで。
*1 : Linux ubuntu 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
*2 : NetBSD nbsd-head 5.99.59 NetBSD 5.99.59 (GENERIC) #0: Fri Jan 13 00:27:37 UTC 2012 builds@b7.netbsd.org:/home/builds/ab/HEAD/i386/201201121750Z-obj/home/builds/ab/HEAD/src/sys/arch/i386/compile/GENERIC i386
*3 : NetBSD head64. 5.99.59 NetBSD 5.99.59 (GENERIC) #0: Thu Jan 12 19:43:43 UTC 2012 builds@b8.netbsd.org:/home/builds/ab/HEAD/amd64/201201121750Z-obj/home/builds/ab/HEAD/src/sys/arch/amd64/compile/GENERIC amd64
1: 774 『ubuntuがいくらなんでも速すぎませんか。 お高いディスクお使いですか。』 (2012/01/30 15:54)
2: tokuda 『いえ、高いディスクでもなんでもない、何の変哲もないSATA 3.5inchディスクです。dmesgにはWD20EARS-00Mっ...』 (2012/02/11 24:52)
3: 774 『なるほど、dbenchのことは知りませんが、ちょっと前のSSDのカタログ性能くらい出ちゃってるのであれれと思いました。 NetB...』 (2012/02/16 11:42)