ふと思い立ち、家の仮想環境用のストレージの性能測定をしてみたが、妙に遅い。
MarvellのSATAコントローラーでHyperDuoを構成したものをFreeNASでミラーを組んでいる構成。
直接サーバで計測するとWRITEは約90MB/secほど。
一方READはキャッシュから読まれているのか早い。
ディスクの性能測定にはならないが、iSCSIで接続した場合にはNICの性能がネックになるだろう。
ではiSCSIで接続したESXi上から実行してみると、妙に遅く、WRITEで約17MB/secほど。
READの方は比較的マシで約48MB/secほどのスピードが出ている。
流石に遅すぎるということで、sysctlパラメータを弄ってみた。
dev.vge.%d.int_holdoffを1100(デフォルト150)
dev.vge.%d.rx_coal_pktを16(デフォルト64)
dev.vge.%d.tx_coal_pktを32(デフォルト128)
そしたら、WRITEは約34MB/secほどで少しマシになった。
一方、READは約43MB/secで若干遅くなったが、バランス的にはこれぐらいか。
ついでに仮想マシン(今となっては古くて塩漬けなWindows Home Server)上でCrystal Disk Markを実行してみた。
チューニング前は以下のような感じ。
チューニング後はシーケンシャルWRITEはよくなったが、割り込み減速の影響かランダム性能が悪くなった。
バランス的には後者かなと思いつつ、安物チップの限界を感じる結果となった。
ちなみに、BroadcomのNICだとWRITEが約80MB/sec、READが約75MB/secと結構な差となった。
2.5GbEも流行ってきているので換装の機運は高まっているが、内部性能的にはGbEで十分そうだ。
と思ったが、900Mbpsぐらいでていそうなので、2.5GbEとかにするのも面白そう。
GbEのカードでも性能差が結構あるので、2.5GbEとかを導入するにしてもまともなチップを選んだ方がよさそうだ。
MarvellのSATAコントローラーでHyperDuoを構成したものをFreeNASでミラーを組んでいる構成。
直接サーバで計測するとWRITEは約90MB/secほど。
root@sto01[/mnt/pool0]# dd if=/dev/random of=test bs=1M count=500 500+0 records in 500+0 records out 524288000 bytes transferred in 5.689354 secs (92152470 bytes/sec)
一方READはキャッシュから読まれているのか早い。
ディスクの性能測定にはならないが、iSCSIで接続した場合にはNICの性能がネックになるだろう。
root@sto01[/mnt/pool0]# dd if=test of=/dev/null bs=1M count=500 500+0 records in 500+0 records out 524288000 bytes transferred in 0.418108 secs (1253954697 bytes/sec)
ではiSCSIで接続したESXi上から実行してみると、妙に遅く、WRITEで約17MB/secほど。
[root@esx01:/vmfs/volumes/634f9750-3747bd9a-1559-0010181b5821] time dd if=/dev/zero of=test bs=1M count=500 500+0 records in 500+0 records out real 0m 29.43s user 0m 0.42s sys 0m 0.00s
READの方は比較的マシで約48MB/secほどのスピードが出ている。
[root@esx01:/vmfs/volumes/634f9750-3747bd9a-1559-0010181b5821] time dd if=test of=/dev/null bs=1M count=500 500+0 records in 500+0 records out real 0m 10.35s user 0m 1.83s sys 0m 0.00s
流石に遅すぎるということで、sysctlパラメータを弄ってみた。
dev.vge.%d.int_holdoffを1100(デフォルト150)
dev.vge.%d.rx_coal_pktを16(デフォルト64)
dev.vge.%d.tx_coal_pktを32(デフォルト128)
そしたら、WRITEは約34MB/secほどで少しマシになった。
[root@esx01:/vmfs/volumes/634f9750-3747bd9a-1559-0010181b5821] time dd if=/dev/zero of=test bs=1M count=500 500+0 records in 500+0 records out real 0m 14.56s user 0m 0.42s sys 0m 0.00s
一方、READは約43MB/secで若干遅くなったが、バランス的にはこれぐらいか。
[root@esx01:/vmfs/volumes/634f9750-3747bd9a-1559-0010181b5821] time dd if=test of=/dev/null bs=1M count=500 500+0 records in 500+0 records out real 0m 11.63s user 0m 2.00s sys 0m 0.00s
ついでに仮想マシン(今となっては古くて塩漬けなWindows Home Server)上でCrystal Disk Markを実行してみた。
チューニング前は以下のような感じ。
チューニング後はシーケンシャルWRITEはよくなったが、割り込み減速の影響かランダム性能が悪くなった。
バランス的には後者かなと思いつつ、安物チップの限界を感じる結果となった。
ちなみに、BroadcomのNICだとWRITEが約80MB/sec、READが約75MB/secと結構な差となった。
[root@esx01:/vmfs/volumes/634f9750-3747bd9a-1559-0010181b5821] time dd if=/dev/zero of=test bs=1M count=500 500+0 records in 500+0 records out real 0m 6.23s user 0m 0.41s sys 0m 0.00s
[root@esx01:/vmfs/volumes/634f9750-3747bd9a-1559-0010181b5821] time dd if=test of=/dev/null bs=1M count=500 500+0 records in 500+0 records out real 0m 6.67s user 0m 0.91s sys 0m 0.00s
2.5GbEも流行ってきているので換装の機運は高まっているが、内部性能的にはGbEで十分そうだ。
と思ったが、900Mbpsぐらいでていそうなので、2.5GbEとかにするのも面白そう。
GbEのカードでも性能差が結構あるので、2.5GbEとかを導入するにしてもまともなチップを選んだ方がよさそうだ。