WD20EARSが遅い
とにかく,状況がよくわからないので現状だけ記録.こっちも,WD20ERSを5個買ってしまってるので死活問題.
まず,ハードは
【CPU】 i3 530 1.86GHz 【M/B】 DH55TC 【電源】KRPW-VII-600 【FAN】 120mm*1 140mm*1 【VGA】 オンボード 【HDD】 ADATA SSD 300, WD20EARS*5 【メモリ】 DDR3 1333 2GB*2 【Sound】 オンボ 【LAN】 オンボ(82758DC) 【OS】 FreeBSD 9.0-CURRENT 【光学ドライブ】なし
アイドルはHDDが全部スピンダウンすれば60W台に落ちるけど,普通は72Wくらいとかなり大きい.アクセスすると場合によっては100W程度に跳ね上がるかなり地球に優しくない仕様.
まずは,ドライブ自体の性能としては
dd if=/dev/zero of=/dev/ada3 bs=100M count=100 100+0 records in 100+0 records out 10485760000 bytes transferred in 96.476592 secs (108687090 bytes/sec)
で,速いとは言いがたいけど,WD20EARSの標準的な性能の枠内.
これを,普通にzpool createでZFSのディレクトリを作ってbonnie++した結果が,
Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP hafnium.smectic_ 8G 72 99 62639 14 36662 11 213 99 77332 11 117.4 15 Latency 195ms 6076ms 6614ms 63691us 2221ms 1910ms Version 1.96 ------Sequential Create------ --------Random Create-------- hafnium.smectic_g.c -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14451 97 +++++ +++ 15421 98 16878 96 +++++ +++ 15382 98 Latency 13895us 128us 287us 27652us 74us 388us
と絶望的に遅い.
FreeBSDが,WD20EARSを4Kセクターだと認識できないのが悪い*1のかと思い,
gnop create -S 4096 /dev/ada2
zpool create tank /dev/ada2.nop
として,強制的に4Kセクターとして認識させてみたらどうなるかというのが次で,
Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP hafnium.smectic_ 8G 70 99 72083 16 43463 13 208 99 80571 10 119.8 18 Latency 389ms 5480ms 5488ms 53622us 974ms 1513ms Version 1.96 ------Sequential Create------ --------Random Create-------- hafnium.smectic_g.c -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14731 97 +++++ +++ 15269 98 16706 97 +++++ +++ 15229 98 Latency 14175us 122us 422us 28550us 72us 420us
少しは改善されるけど,まだ頭が痛い範囲.
とりあえず,所々に出てくる63という数字が怪しげすぎるので,そこを修正してどうなるかをやってみる予定.
追記
理由は不明だが,
dd if=/dev/zero of=/dev/ada1 bs=10M count=1
zpool create tank /dev/ada1
として,bonnie++をすると,
Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP hafnium.smectic_ 8G 74 99 70644 15 41450 12 212 99 85786 11 113.3 13 Latency 532ms 5792ms 5889ms 60440us 467ms 3403ms Version 1.96 ------Sequential Create------ --------Random Create-------- hafnium.smectic_g.c -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14933 96 +++++ +++ 15281 98 16733 97 +++++ +++ 15272 98 Latency 14009us 126us 359us 28415us 71us 423us
となって,妙に速くなる.謎だ.この細工をした後の2TB*5ストライプが
Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP hafnium.smectic_ 8G 76 99 178456 40 66896 20 206 97 102828 13 269.5 15 Latency 464ms 1476ms 1386ms 426ms 414ms 394ms Version 1.96 ------Sequential Create------ --------Random Create-------- hafnium.smectic_g.c -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 16585 97 +++++ +++ 15231 98 16849 97 +++++ +++ 15142 98 Latency 13857us 82us 318us 27950us 71us 416us
と,readが遅いのみはそこそこ.2TB*5のraidzだと,
Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP hafnium.smectic_ 8G 76 99 112684 25 55420 17 212 99 113982 15 119.9 13 Latency 550ms 2732ms 2639ms 99935us 649ms 7214ms Version 1.96 ------Sequential Create------ --------Random Create-------- hafnium.smectic_g.c -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14764 88 +++++ +++ 14268 93 16063 93 +++++ +++ 14646 93 Latency 14213us 128us 398us 28136us 102us 277us
となって,まあ遅いけど,許容しようというレベルに落ち着いたからいいかなと.
追記2
メモリを4GB->8GBにして,prefetchをonにしたら(vfs.zfs.prefetch_disable=0),
Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP hafnium.smectic 16G 66 98 123519 29 95487 30 211 99 316246 38 108.6 12 Latency 318ms 6803ms 5034ms 76517us 1027ms 7856ms Version 1.96 ------Sequential Create------ --------Random Create-------- hafnium.smectic_g.c -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 12121 74 1505 4 9606 77 14837 88 +++++ +++ 9957 78 Latency 100ms 5086ms 226ms 25163us 52us 240ms 1.96,1.96,hafnium.smectic_g.com,1,1269783359,16G,,66,98,123519,29,95487,30,211,99,316246,38,108.6,12,16,,,,,12121,74,1505,4,9606,77,14837,88,+++++,+++,9957,78,318ms,6803ms,5034ms,76517us,1027ms,7856ms,100ms,5086ms,226ms,25163us,52us,240ms
と,何か振り切れちゃった感じ.ただ,latencyがかなーり悪化したのがなぜだかわからないけど.
*1:というか,どんなOSでもディスクが512Bセクターですと言い張っているものを4Kセクターだと看破することなんて出来やしないわけで