横田です。

Norikatsu Shigemura さんは書きました:
> 重村法克です。
> 
> On Sun, 21 Oct 2007 13:08:09 +0900
> FreeBSD 
> <[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]> 
> wrote:
>> # atacontrol create RAID0 128 ad8 ad10 ad12 ad14
>> ar0: created
>> # mount /dev/ar0 /mnt/raid0
> 
>       128セクター(64KB 単位)でインターリーブですね。

4〜512まで2倍ずつ変えながら試したところ、
128が一番性能がよかったので128にしています。
64や256との差は1MB/sec以下なのでほとんど差は無いに等しいのですが。

>> % dd if=16GB of=/dev/null bs=256b
>> 32768+0 records in
>> 32768+0 records out
>> 4294967296 bytes transferred in 52.901683 secs (81187725 bytes/sec)
>> チューニングの余地はありそうですが(ストライプサイズなど)、
>> やはりPCIバスの速度がボトルネックになっているようです。
> 
>       指定が 256 ブロック=128KB なので, 1 I/O リクエストで
>       2 台の HDD 分しかアクセスにいけてません。
> 
>       1 I/O リクエストで 4 台アクセスにいかせるなら 倍の 512b は欲
>       しいところ。
> 
>       あとこれを基数として, 更に倍, 2 倍, 3 倍で効果が出ているか
>       (飽和するか)確認してみてください。

理論上はおっしゃる通りなのですが、iostatで表示される1トランザクションの
最大サイズが128KBなので、disk I/Oは128KBに分割されて処理されていると
思っています。ソースを調べればいいのですが詳しく見ていません。

実際、ddのパラメータをbs=512bにしてもほとんど差はありません。
今バックグラウンドでプログラムが動いていて正確な測定ができないので、
後ほどアイドルになったときに指示された方法で計ってみます。

メールによる返信