max_connections
を増やすだけです 悪い考えです。 shared_buffers
を増やす必要があります およびkernel.shmmax
同様に。
考慮事項
max_connections
データベースサーバーへの同時接続の最大数を決定します。デフォルトは通常100接続です。
接続数を増やす前に、デプロイメントをスケールアップする必要がある場合があります。ただし、その前に、接続制限を増やす必要があるかどうかを検討する必要があります。
各PostgreSQL接続は、接続またはそれを使用するクライアントを管理するためにRAMを消費します。接続数が多いほど、データベースの実行に使用できるRAMが多くなります。
適切に作成されたアプリは、通常、多数の接続を必要としません。多数の接続を必要とするアプリがある場合は、接続をプールできるpg_bouncerなどのツールの使用を検討してください。各接続はRAMを消費するため、それらの使用を最小限に抑えることを検討する必要があります。
最大接続数を増やす方法
1。 max_connection
を増やします およびshared_buffers
/var/lib/pgsql/{version_number}/data/postgresql.conf
にあります
変更
max_connections = 100
shared_buffers = 24MB
に
max_connections = 300
shared_buffers = 80MB
shared_buffers
構成パラメータは、メモリの量を決定します 専用 データのキャッシュに使用するPostgreSQLへ 。
- 1 GB以上のRAMを搭載したシステムの場合、shared_buffersの適切な開始値は、システムのメモリの1/4です。
- RAMの40%以上を使用して、少量(25%など)よりもうまく機能することはほとんどありません。
- システムまたはPostgreSQLビルドが32ビットの場合、shared_buffersを2〜2.5GBより大きく設定するのは実用的でない可能性があることに注意してください。
- Windowsでは、shared_buffersの大きな値はそれほど効果的ではなく、比較的低く保ち、代わりにOSキャッシュをより多く使用する方が良い結果が得られる場合があることに注意してください。 Windowsでは、有用な範囲は64MBから512MBです 。
2。 kernel.shmmaxを変更する
カーネルの最大セグメントサイズを少し大きく増やす必要があります shared_buffers
より 。
ファイル/etc/sysctl.conf
以下のようにパラメータを設定してください。 postgresql
のときに有効になります 再起動します(次の行により、カーネルが最大で96Mb
になります )
kernel.shmmax=100663296
参考資料
Postgresの最大接続数と共有バッファ
PostgreSQLサーバーの調整