PostgreSQL の max_connections と pgbouncer の default_pool_size を計算するにはどうすればいいですか?

PostgreSQL の max_connections と pgbouncer の default_pool_size を計算するにはどうすればいいですか?

max_connectionsdefault_pool_sizeおよびの適切な数値を計算するために使用できるルールなどはありますかmax_client_conn?

デフォルトがおかしいです。PostgreSQL のデフォルトは max_connections=100 ですが、pgboucner のデフォルトは default_pool_size=20 です。default_pool_size は常に max_connections より大きくすべきではないでしょうか。そうでなければ、何の意味があるのでしょうか。pgbouncer は、オーバーヘッドを減らすことで (PostgreSQL の接続を再利用することで)、より多くの接続を処理できるようにするためのものだと思っていました。混乱しています。

私は次のようなアドバイスを探していますPostgreSQL のウィキたとえば、「このパラメータはメモリの約 50% である必要があります」などです。

また、MySQL 用のスプレッドシートがあり、このようなパラメータを計算できることも覚えています。PostgreSQL/pgbouncer にもそのようなものがあれば素晴らしいと思います。

答え1

default_pool_size は常に max_client_conn より小さくする必要があります。max_client_connection は、アプリケーションと pgbuffer 間のソケット接続の数です。default_pool_size は、pgbuffer と db 間の接続の数です。

したがって、プール モードとしてトランザクションを使用している場合は、より小さい default_pool_size を多数のクライアントと共有できます。

関連情報