[pgsql-jp: 38418] Re: パラメータ「shared_buffers」について

Hiroki Kataoka kataoka @ interwiz.jp
2007年 5月 11日 (金) 20:00:53 JST


片岡です。

Daisuke Arai さんは書きました:
> まず、片岡様からのご意見の中で、不足していた情報をお知らせしたいと
> 思います。
> ・データベースのサイズ
> →調査する方法がわからなくて、お恥ずかしい限りです。データ先は、RAID(1)
> にしているのですが、使用容量は約35GBytesを数えます。
> ・データベースの特徴(アクセスパターンなど)
> →参照系(SELECT)が60%、更新系(INSERT、UPDATE、DELETE)が40%で稼動
> していると考えられます。
> ・同時接続数(空きメモリが減るため)
> →「max_connection」は「256」に設定しております。
> 
> もう少し、「shared_buffers」についてご教授いただければ幸いです。

 上記情報によって私が「ではXXXにしてください」といえるものではありませ
ん。例えば更新系が40%といっても、ほとんど同じレコードばかりを更新するの
と全体をまんべんなく更新するのとでは状況が異なってきます。ですから、最終
的にはご自分で実際の環境と同じ条件で性能試験を行い、最適値を見つけるしか
ありません。

 ですがそこまでやるのはコストがかかりますし、そこまでぎりぎりのチューニ
ングを必要としていない場合が多いですから、より簡単な推奨値の導き方がある
わけです。それが最初のメールで引用されていた3つの「自論」といえます。

 いろいろと疑問をお持ちのようですが、一度ご自分でベンチマーク試験をやっ
てみてください。本番環境を模した試験は大変ですので、まずはpgbenchを用い
た簡単な試験をご自分で行ってみて、感覚をつかんでみるといいと思います。

> postgresql.confの中で「min max_connections*2 or 16, 8KB each」
> という注釈があります。

 これは設定可能な最小値です。これより小さくすることはできない値です
(PostgreSQLが起動しなくなります)。当然、このような最小値に設定するので
あれば、性能は期待できません。

-- 
Hiroki Kataoka <kataoka @ interwiz.jp>



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