[pgsql-jp: 38549] Re: DB

Hiroki Kataoka kataoka @ interwiz.jp
2007年 7月 3日 (火) 12:05:04 JST


片岡です。

Keisuke YAMAMOTO さんは書きました:
> 現状で、DBが20個以上動いています。

> DBを跨ぐ仕組みは、APサーバ(PHP)で別々に読み込んで行って
> います。

> マシンには物理メモリーが2Gで、shared_buffers は
> 大きくするとスワップしてしまうようで、64M 割り当て
> ています。

 メモリが2Gで共有メモリを64Mより多く設定するとswapが発生するというのが
気になります。通常そのスペックなら共有メモリを1G取ったとしても同時200接
続くらいはswapなしに可能なはずです(設定や利用状況により前後するとは思い
ますが)。

 DBを20個に分けてしまったため、1アプリから同時に複数のDBにアクセスしな
ければならなくなり、その結果同時接続クライアント数が数倍に膨れてしまっ
た、なんてことは考えられませんか?
 また、接続先が20もある環境でPHPのpconnectを使っていたりすると、やはり
総接続数が膨大なことになってしまいます。

 上記の仮定が正しいとしたら、まずは同時にアクセスしなければならないDBを
1つにまとめて総接続数を減らし、共有メモリを常識的なサイズに増やすことで
しょうか。数十GバイトのDBで64Mはいくらなんでも小さすぎると思います。

 引用が重複&前後しますが、

> 現状で、DBが20個以上動いています。

> 4時間に1回ダンプを取っています。

 複数のDBをダンプした場合、DB間での整合性が維持できないです。まったく関
係の無い独立したDB同士であれば良いのですが、DBを跨いだアクセスをしている
とのことですから無関係ではなさそうです。本当にダンプから復旧できるのか?
という点で心配になります。

-- 
Hiroki Kataoka <kataoka @ interwiz.jp>



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