Postgresql

應該為 1000 個使用者的 Jira 系統設置多少池連接大小?

  • February 17, 2020

對於 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個使用者使用這個系統,如果一個app server服務500個使用者,在postgresql.conf文件中設置多少pool connection size比較好呢?而且,如果使用 pgbouncer,它可以減少多少連接?

答案取決於您的數據庫系統上有多少個核心、它可以處理多少並發 I/O 請求以及應用程序使用連接時活動時間與空閒時間的比率。

我會從最多 20 個會話開始。

引用自:https://dba.stackexchange.com/questions/259821