[pgsql-jp: 36070] Re: 検索系システムのパフォーマンスについて
TANIDA Yutaka
tanida @ sraoss.co.jp
2005年 9月 30日 (金) 20:24:36 JST
谷田です。
On Fri, 30 Sep 2005 20:08:23 +0900
梅沢 功 <umezawa @ waseda.jp> wrote:
> > > postgres.confには以下のパラメータを設定しています。
> > > max_connections = 512
> > > shared_buffers = 4096
>
> 普通、shared_buffers が 4096 では少なすぎると思います。
> 桁が 2 〜 3 違っているのでは?
>
> 例えば、以下のページをご覧ください。
> この他にも類似の記事は沢山みつかると思います。
> http://www.stackasterisk.jp/tech/dataBase/postgresTuning01_04.jsp
>
> このページでは考え方を述べているだけですが、多くの場合実
> メモリの1/4 〜 1/2 を共有バッファに割り当てるのが適切です。
> 上記の設定は実メモリが 64MB〜128MB くらいのマシンなら良い
> と思いますけど。
> # DB サーバ以外の機能も受け持っている場合、この割合は低く
> # 設定せざるをえないでしょうけどね。
このような考え方では商用DBなどでは普通ですが、残念ながらPostgreSQLではう
まくいくとは限らないということがよく知られています。というのも内部的な
ロック(BufMgrLock)とかのつくりの関係で、キャッシュ量を増やせば増やすほど
パフォーマンスが低下してしまうのです。なので、PostgreSQLのバッファはたと
えば1000〜10000程度にするのが定石です。なのでこの数字だけ見て少なすぎる
ということはないでしょう
例外はキャッシュに収めておかなければならない、頻繁にアクセスするデータが
多すぎて、キャッシュ率が極端に低くディスクI/Oがボトルネックのパターンで、
このような場合だとバッファを増やしてパフォーマンスが増加することがありま
す。
--
TANIDA Yutaka <tanida at sraoss.co.jp>
pgsql-jp メーリングリストの案内