2013-07-24 raidframeチューニングふたたび
3T×5を買ってきてNetBSDのraidframeでRAID5を組んだのでメモっておく。NetBSD 6.99.22/amd64。
いつもハマるのがraid.confのSectPerSuの値とnewfsのblock-size/fragment-size。
ちょっと変えるだけで劇的に速度が変わるとか罠杉だろう。
SectPerSU は raid0.conf の↓の値。
2T overなので gpt を使う。gpt add -b 64 -s 5860533068 -t raid wd2 〜 wd6 とかやって、4k alignment にちゃんと合わせておく。
あとは上記SectPerSUの値とnewfsのblock-sizeとfragment-sizeを決める。
以前raidframeにした時は手作業で試してたのだが、さすがにアレなのでscript作ってブン回す。
以下、newfs、dd、tarで展開、rm、sync、tarで展開にかかった合計の秒数。
…raidのblocksize以下になると遅くなるのは当然だが、それでもいまいち傾向がよくわからない。
あまり深く考えるのはやめて、一番速かった SectPerSU=16、newfs -b 64k -f 32k で使うことにしよう。
1ファイル平均16kb無駄になるんで、うちの環境の場合11Tのうち0.5Tくらい無駄になる予感。
いつもハマるのがraid.confのSectPerSuの値とnewfsのblock-size/fragment-size。
ちょっと変えるだけで劇的に速度が変わるとか罠杉だろう。
SectPerSU は raid0.conf の↓の値。
START layout 16 1 1 5
2T overなので gpt を使う。gpt add -b 64 -s 5860533068 -t raid wd2 〜 wd6 とかやって、4k alignment にちゃんと合わせておく。
あとは上記SectPerSUの値とnewfsのblock-sizeとfragment-sizeを決める。
以前raidframeにした時は手作業で試してたのだが、さすがにアレなのでscript作ってブン回す。
以下、newfs、dd、tarで展開、rm、sync、tarで展開にかかった合計の秒数。
SectPerSU=16 -f 2k 4k 8k 16k 32k 64k --------------- --------------- ------- ------- ------- ------- -------- newfs -b 16k 1116 1036 922 1024 newfs -b 32k 296 257 297 100 newfs -b 64k 268 280 89 114
SectPerSU=32 -f 2k 4k 8k 16k 32k 64k --------------- --------------- ------- ------- ------- ------- -------- newfs -b 16k 905 735 686 452 newfs -b 32k 473 307 293 331 newfs -b 64k 670 406 433 559
SectPerSU=64 -f 2k 4k 8k 16k 32k 64k --------------- --------------- ------- ------- ------- ------- -------- newfs -b 16k 1010 671 542 509 newfs -b 32k 505 411 369 353 newfs -b 64k 456 337 303 353
SectPerSU=128 -f 2k 4k 8k 16k 32k 64k --------------- --------------- ------- ------- ------- ------- -------- newfs -b 16k 961 626 509 417 newfs -b 32k 514 376 395 309 newfs -b 64k 465 395 349 404
…raidのblocksize以下になると遅くなるのは当然だが、それでもいまいち傾向がよくわからない。
あまり深く考えるのはやめて、一番速かった SectPerSU=16、newfs -b 64k -f 32k で使うことにしよう。
1ファイル平均16kb無駄になるんで、うちの環境の場合11Tのうち0.5Tくらい無駄になる予感。
EOF