web-dev-qa-db-ja.com

1000ユーザーのJiraシステムにいくつのプール接続サイズを設定する必要がありますか?

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を使用する場合、いくつの接続を削減できますか?

1
rawmain

答えは、データベースシステムにあるコアの数、処理できる同時I/O要求の数、およびアプリケーションが接続を使用している間のアクティブ時間とアイドル時間の比率によって異なります。

私は最大20セッションから始めます。

2
Laurenz Albe