[pgsql-jp: 38869] Re: HDD差異だけで更新性能だけこんなに違うのはなぜ?

omi @ ydc.co.jp omi @ ydc.co.jp
2007年 10月 19日 (金) 07:04:30 JST


伊藤さん、尾見です。
おはようございます。

お返事ありがとうございます。

On Thu, 18 Oct 2007 22:12:26 +0900
Kouji Ito <kouji @ cty-net.ne.jp> wrote:

> こんにちは、伊藤です。
> 
> PostgreSQLは、rawデバイスに対して書き込みを行うわけではないので、
> 下記の値に着目してみましたが、凄く早いですね。(200MB/sを軽く越えている。)
> この値って、本当に信用できる値なんでしょうか?

引用なさった箇所のddは、出力先がext3ファイルシステムなので、
OSのファイル・キャッシュが使用されたものですので、
200MB/sを超えても異常ではないと思います。

実際の書き込み完了までの時間は(とりあえずOSから先のキャッシュは無視)、
        real    0m21.490s、
の方で考えて、47MB/s(1024/21.49)くらいですね。

> iostatとかでそれぞれのDISKに対するI/O統計を取ってみると、実は全然違うってことありませんか?
> もしくは、ddの後に1回syncしていますが、この後もこっそりDISKに書き込んでいるとか。

topで見るかぎり、
  real    0m21.490s
の表示後はカーネル(kjournald,pdflush等)の活動は落ち着きます。

ちなみに、ddの出力先がext3ファイルシステムの場合は、
> > 1073741824 bytes (1.1 GB) copied, 4.72524 seconds, 227 MB/s
が表示された後も、カーネルがしばらく活動しているのが、
topでもよく判ります。

> 
> また、内蔵SAS、DiskArrayはそれぞれ同じRAIDになってるんでしょうか?

内臓はRAID1、DiskArrayはRAID5です(いずれもハードRAID)。

なお、両者Diskでの結果が同じにならないのを問題視しているのではなく、
"dd..sync"の性能差にみあった結果が、
pgbenchや更新処理性能に反映されないのが腑に落ちないのです。

> 
> 一度 iozoneなどのファイルシステムのベンチマークを取って比較してみてはどうでしょう。

情報ありがとうございます。
折を見て試してみます。
そもそも、"dd..sync"を使った原始的(?)な比較はよくないかもしれませんね。

> 
> > sda10# time ( dd if=/dev/zero of=/DB/BIG bs=1M count=1024 ; sync )
> > 1024+0 records in
> > 1024+0 records out
> > 1073741824 bytes (1.1 GB) copied, 4.72524 seconds, 227 MB/s
> > 
> > real    0m21.490s
> > user    0m0.001s
> > sys     0m1.909s
> > 
> 
> 
> 
> > sde1# time ( dd if=/dev/zero of=/DB/BIG bs=1M count=1024 ; sync )
> > 1024+0 records in
> > 1024+0 records out
> > 1073741824 bytes (1.1 GB) copied, 3.90016 seconds, 275 MB/s
> > 
> > real    0m37.200s
> > user    0m0.002s
> > sys     0m2.079s
> > 
> > 
> 




pgsql-jp メーリングリストの案内