- ベストアンサー
PostgresSQLの同時接続数
質問させていただきます。 Apache+PHP+PostgresSQLでサーバーを運用しています。アクセス数が多くなるとApacheが停止してしまいす。そのためボトルネックの調査をしているのですが、Apacheの同時リクエスト数(MaxClients)を150、 PostgreSQLの同時接続数(MAX_CONNECTIONS)を32に設定しています。 ApacheとPostgreSQLの同時接続数はどちらを多くしたほうがよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フロントエンドの接続数よりもバックエンドの接続数が少なければ,フロントエンドで止まってしまいますよね? CCCCCCCCCC [client] FFFFFFFFFF [apache] BBB******* [postgres] *の部分は足りないのでエラーが返る. ひとつのスクリプトでpostgresに2connectionあれば,フロントエンド=バックエンドでは足りなくなりますよね? よって,安全を考えてF < Bって考えるべきかと思います. それから,apacheが落ちると言うのは何かスクリプトに問題があったりしませんでしょうか? アクセス数が多くなれば,コネクションできなくなるだけなので,そのエラーが返るはず. 落ちるのは,資源を使い切ってたりって事もあるのでは? ベンチ中にtopで監視してみた方が良いかも知れません. #Linuxですよね?
その他の回答 (1)
- chirorin200x
- ベストアンサー率57% (8/14)
これはフロントエンドとバックエンド同じにしないと駄目ですね. つか,バックエンドの方が多くないと駄目かな. Postgresにメモリをあまり使えないのなら,pgpoolとかでプーリングするのも手. ちなみにapacheが停止って落ちるってことかな?
お礼
回答ありがとうございます apache停止は落ちるということです、 よければフロントエンドとバックエンドを同じにするか、 多くしなければいけない理由を教えてください。 あとvmstatでCPUのアイドルを確認したのですが 30~20の状態でもpostgreSQLに繋がらなくなります。
お礼
迅速な回答ありがとうございました サーバーはlinuxです、落ちる原因を調べたいのですが メッセージを確認出来ないためエラーが特定できない 状態です。vmstatでリソースは確認してます、 過負荷の時にtopで監視してみます。