2012年2月23日

[pgsql-jp: 41058] Re:PostgreSQL 9.1.2 でSql が遅くなることがある

Mame24さん


MauMauです。

わずか2MBのwal_buffersがメモリを圧迫したとは考えにくいです。
なぜなら、WALバッファは接続ごとに割り当てられるわけではなく、
PostgreSQLのインスタンスごとに1つ割り当てられるからです。


どのような処理に時間がかかっているかを調べるため、まずは
EXPLAIN ANALYZEやcontrib/auto_explainを使うことがよいと思います。


以上です。

----- Original Message -----
From: "Mane24" <mane24jp@xxxxx>
To: "PostgreSQL Japanese Mailing List" <pgsql-jp@xxxxx>
Sent: Thursday, February 23, 2012 12:53 PM
Subject: [pgsql-jp: 41056] Re: PostgreSQL 9.1.2 でSql が遅くなることがある


> MauMau さん。ご回答ありがとう御座います。
>
>> wal_buffersのデフォルト値は、9.1から-1になりました。
>> 設定値が-1の場合、WALバッファの大きさはshared_buffersの1/32になります。
>> ただし、実際のWALバッファの大きさは、
>> もしこの計算値が64KBより小さければ64KBに、
>> 16MBより大きければ16MBに補正されます。
>>
>> 9.0以前ではwal_buffersのデフォルト値は64KBです。
>> ですので、もし8.4でもwal_buffersを設定していなかったとしたら、
>> WALバッファが性能劣化の原因ではないと思われます。
>
> 8.4 では、
> shared_buffers を、64MB
> wal_buffers = 512kB
> で設定していました。
>
> 9.1 では
> shared_buffers を、64MB
> wal_buffers = -1
>
> で、計算式より、2MB で設定されていると言うことですね。
> 以前より、多くのメモリが割り当てられ圧迫していたのでしょうか。
>
>
> 「wal_buffersの値はデフォルトでshared_buffersの容量に応じて自動的
> に調整されるようになりました」
>
> となっていたのですが、以前のバージョンのデフォルト値とずいぶん差が
> あるのですね。
>
>>
>> 数時間かかるようになったSQL文は、8.4ではどのくらいの時間で終了していたの
>> でしょうか。
>> 何十倍もの時間がかかるのであれば、EXPLAIN ANALYZEやcontrib/auto_explainで
>> 問合わせ計画を見てみるのがよいでしょう。
>> もしかすると、統計情報が正しくないために、インデックスが使われていないこ
>> とも考えられます。
>> マニュアルの次の部分に記されているように、アップグレード後には、
>> ANALYZEやVACUUM ANALYZEで統計情報を収集する必要があります。
>
> 数秒程度で終了していました。
> ANALYZEやVACUUM ANALYZEで統計情報を収集 は、タスクで運用開始前に行って
> います。
>
> あと、autovacuum は停止してあります。
>


投稿者 xml-rpc : 2012年2月23日 19:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108642
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。