[pgsql-jp: 36308] Re: VACUUMの性能を向上させたい
Yumiko Izumi
izumi-yumiko @ tokyo.scnet.co.jp
2005年 11月 2日 (水) 19:04:11 JST
お世話になっております。Izumiです。
追加で以下調査しましたので、結果をご報告します。
コマンド出力の引用だらけなので、みにくいと思いますが、
ご勘弁を。
> 確かに遅すぎですね。
> やはりPIOモードになっているか、SATAのドライバがまずいのか…
>
> すでに調査済みかもしれませんが、激重なプロセスが走ってたりしませんかね?
> top コマンドで調べてみてください。
topコマンドの出力は割愛しますが、以下のような状態でした。
・一番重いのはpostmaster自身
・次に重いのはpostmasterにアクセスしているプロセス(複数)
・他は特別重いものはない
# 但し、ここでいう「重い」とはCPU使用率(user、system)ではなく、
# iowaitが高い、ということです。
> 2. 以前に提示されていたハード構成で7.62 MB/secはやはり遅めです
> もう1つ、オプション無しの結果も出せるでしょうか?
> [pgsql-jp: 36283]で水野さんが書かれていたdmesgの結果も有ればより
> 詳しいことも判りますが全部貼り付けないで下さいね
dmesgにてデバイス情報を取得しました。
-----------------------------------------
ata1: SATA max UDMA/133 cmd 0xFE00 ctl 0xFE12 bmdma 0xFEA0 irq 18
ata2: SATA max UDMA/133 cmd 0xFE20 ctl 0xFE32 bmdma 0xFEA8 irq 18
ata1: dev 0 cfg 49:2f00 82:346b 83:7f01 84:4003 85:3469 86:3c01 87:4003
88:207f
ata1: dev 0 ATA, max UDMA/133, 156250000 sectors: lba48
ata1: dev 0 configured for UDMA/133
ata2: SATA port has no device.
scsi0 : ata_piix
scsi1 : ata_piix
Vendor: ATA Model: ST380013AS Rev: 8.12
Type: Direct-Access ANSI SCSI revision: 05
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 156250000 512-byte hdwr sectors (80000 MB)
-----------------------------------------
ata1(scsi1)が該当のHDDとなります。
# なお、LinuxではS-ATAはscsi扱いされるそうです。
転送モードはUDMA/133 の個所で、通常のDMAモードのようです。
また、hdparmの値を追加で取得したところ、以下結果を得ました。
-----------------------------------------
/dev/sda3:
Timing buffered disk reads: 192 MB in 3.01 seconds = 63.79 MB/sec
-----------------------------------------
これは、DBアクセス処理が全て停止しているタイミングのものです。
以下DBアクセス中のものと比べると破格です。
-----------------------------------------
/dev/sda3:
Timing buffered disk reads: 40 MB in 5.25 seconds = 7.62 MB/sec
-----------------------------------------
次に、hdparm -v で転送モード(using_dma)を確認してみました。
------------------------------
[root @ hostname user]# /sbin/hdparm -v /dev/sda3
/dev/sda3:
readonly = 0 (off)
geometry = 9726/255/63, sectors = 143749620, start = 12498570
------------------------------
しかし、S-ATAはSCSI扱いになっているので、using_dma の値は取得できません
でした。
また、昨日試そうとしているものとしてあげた以下のうち、
「最新版PostgreSQL」を優先して試そうとしています。
> また、これから以下を試そうと考えています。
> ・ファイルシステム変更(ext3 → ext2)
> ・「shared_buffers」拡張(マシンのカーネル拡張含む)
> ・REINDEX+VACUUM
> ・最新版PostgreSQL
詳細は必要に応じて別スレッドにて質問したいと考えていますが、
現在のところ、以下をやろうとしています。
・PostgreSQLのバイナリや定義ファイルのみ入れ替えてみる
(テストだけなのでなるべく簡単にやりたい)
・PostgreSQLがサポートしているiodbcのバージョンを調べる
(申し訳ありません。記述漏れていましたが、iodbc経由です。
現在は3.0.6を使っています。)
追加情報があればまた投稿します。
以上よろしくお願いします。
pgsql-jp メーリングリストの案内