• ベストアンサー

PostgresSQLの同時接続数

質問させていただきます。 Apache+PHP+PostgresSQLでサーバーを運用しています。アクセス数が多くなるとApacheが停止してしまいす。そのためボトルネックの調査をしているのですが、Apacheの同時リクエスト数(MaxClients)を150、 PostgreSQLの同時接続数(MAX_CONNECTIONS)を32に設定しています。 ApacheとPostgreSQLの同時接続数はどちらを多くしたほうがよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

フロントエンドの接続数よりもバックエンドの接続数が少なければ,フロントエンドで止まってしまいますよね? CCCCCCCCCC [client] FFFFFFFFFF [apache] BBB******* [postgres] *の部分は足りないのでエラーが返る. ひとつのスクリプトでpostgresに2connectionあれば,フロントエンド=バックエンドでは足りなくなりますよね? よって,安全を考えてF < Bって考えるべきかと思います. それから,apacheが落ちると言うのは何かスクリプトに問題があったりしませんでしょうか? アクセス数が多くなれば,コネクションできなくなるだけなので,そのエラーが返るはず. 落ちるのは,資源を使い切ってたりって事もあるのでは? ベンチ中にtopで監視してみた方が良いかも知れません. #Linuxですよね?

bronco55
質問者

お礼

迅速な回答ありがとうございました サーバーはlinuxです、落ちる原因を調べたいのですが メッセージを確認出来ないためエラーが特定できない 状態です。vmstatでリソースは確認してます、 過負荷の時にtopで監視してみます。

その他の回答 (1)

回答No.1

これはフロントエンドとバックエンド同じにしないと駄目ですね. つか,バックエンドの方が多くないと駄目かな. Postgresにメモリをあまり使えないのなら,pgpoolとかでプーリングするのも手. ちなみにapacheが停止って落ちるってことかな?

bronco55
質問者

お礼

回答ありがとうございます apache停止は落ちるということです、 よければフロントエンドとバックエンドを同じにするか、 多くしなければいけない理由を教えてください。 あとvmstatでCPUのアイドルを確認したのですが 30~20の状態でもpostgreSQLに繋がらなくなります。

関連するQ&A