Jiraシステムの場合、以下のようにJiraのデフォルトの接続構成を使用する場合:
<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>postgres72</database-type>
<schema-name>public</schema-name>
<jdbc-datasource>
<url>jdbc:postgresql://[IP]:5432/jiradb</url>
<driver-class>org.postgresql.Driver</driver-class>
<username>jiradbuser</username>
<password>{PASSWORD}</password>
<pool-min-size>20</pool-min-size>
<pool-max-size>20</pool-max-size>
<pool-max-wait>30000</pool-max-wait>
<validation-query>select 1</validation-query>
<min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
<time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
<pool-max-idle>20</pool-max-idle>
<pool-remove-abandoned>true</pool-remove-abandoned>
<pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
<pool-test-on-borrow>false</pool-test-on-borrow>
<pool-test-while-idle>true</pool-test-while-idle>
</jdbc-datasource>
</jira-database-config>
Postgresqlの設定ファイルで:
postgresql.conf
max_connections = 300
shared_buffers = 80MB
/etc/sysctl.confファイルで:
kernel.shmmax=100663296
テスト段階では、機能します。しかし、本番環境では、1000人のユーザーがこのシステムを使用し、1つのアプリサーバーが500人のユーザーにサービスを提供している場合、postgresql.confファイルに設定するのに適したプール接続サイズはいくつですか?そして、pgbouncerを使用する場合、いくつの接続を削減できますか?
答えは、データベースシステムにあるコアの数、処理できる同時I/O要求の数、およびアプリケーションが接続を使用している間のアクティブ時間とアイドル時間の比率によって異なります。
私は最大20セッションから始めます。