[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 メーリングリストの案内