マルチテナント環境でデータベースあたりのユーザー数を制限したいとします。しかし、最大レベルの接続には3つのレベルがあり、アドバイスに感謝する必要があります。私はデータベースごとPostgresで最大接続数を定義する場所は?
postgresql.conf = max_connections = 100
サーバー上でレベル2のすべてのデータベースの最大接続を設定することができますPostgreSQLの設定を編集して
レベル1サーバ全体
データベースごとにデータベース接続制限を選択して設定できます。
SELECT datconnlimit FROM pg_database
役割毎のレベル3
私が選択して、 "ユーザー" ごとの役割の接続制限を設定することができます
私の質問がありSELECT rolconnlimit FROM pg_roles
MAX_CONNECTIONSであればをpostgresql.confは100ですが、データベースとロールの設定に関係なく、すべてのデータベースの最大接続になりますか?私は100データベースは同時に1つの接続を持つことができますか?
ここで、最大接続数を制限する最適な場所はどこですか?データベースレベルまたはロールレベルで?
他の何かを考慮する必要がありますか?
TIAどのようなアドバイスや手掛かりがありますか?
1)のための(絶対的な制限(https://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS)[ドキュメントから]は明らかですサーバー全体)。残りの部分はユースケースによって異なります。 – dhke
dhke: "残りはあなたのユースケースに依存します"。何かによります?何かヒント? – sibert
実際に複数のDBユーザーがいますか? (たとえば、単一のDBユーザーを持つ大規模なWebアプリケーション)、複数のデータベースがありますか?これらのデータベースは異なるユーザーによって使用されていますか?シングルユーザーの(共通の)ケースでは、単一のDB、 'max_connections'、' datconnlimit'、 'rolconnlimit'はすべて同じで、最低のものによって管理されます。 – dhke