0

postgres.config で pgtune をテストしたので、そこで変更できることはわかっていますが、max_connections または shared_buffers を変更しようとすると、postgres を再起動できません。エラーが発生するだけですが、エラーを特定するログには何もありません。(これらのログがどこにあるのかはわかりませんが、通常の pg_log ディレクトリにはありません。)

私の設定は次のとおりです。

shared_buffers = 24MB  # (pgtune wizard 2013-04-11 = 120MB)
max_connections = 120  # (pgtune wizard 2013-04-11 = 200)

postgresqlのみを実行する512 linodeを使用しています。shared_buffers を 24MB を超えて変更したり、max_connections を 120 を超えて変更したりすると、postgres を再起動できません。

Ubuntu 12.04.2 LTS を使用して Linode xen インスタンスで実行しています。

Ubuntu 12.04.2 LTS (GNU/Linux 3.8.4-x86_64-linode31 x86_64)

私のシステムでは24MBと120の接続が最大であるとpostgres自体が判断するかどうか誰でも知っていますか?

4

1 に答える 1

1

おそらく、共有メモリのデフォルトの非常に低い制限を超えているようです。

これについては、マニュアルで説明されています。オペレーティング システムのリソース制限を参照してください。Linux については、 を参照してくださいkernel.shmmax

余談ですが、増やすことmax_connectionsはしばしば間違った答えです。ほとんどの PostgreSQL インスタンスは、アクティブに動作している接続の数が比較的少ない場合に最適に機能します。多くの場合、接続プールを使用して作業をキューに入れるのが最善です。リソースの使用量が少ないほど、全体的なスループットが向上します。アプリケーションに接続プールが組み込まれていない場合は、PgBouncer を外部接続プールとして使用できます。

于 2013-04-11T09:25:37.893 に答える