openGauss執行緒池相關引數

T1YSL發表於2021-07-27

一、兩個執行緒池相關引數

enable_thread_pool

引數說明:控制是否使用執行緒池功能。該引數屬於POSTMASTER型別引數,需要重啟生效
取值範圍:布林型
• on表示開啟執行緒池功能。
• off表示不開啟執行緒池功能。
預設值:off

thread_pool_attr

引數說明:用於控制執行緒池功能的詳細屬性,該引數僅在enable_thread_pool開啟後生效,僅sysadmin使用者可以訪問。該引數屬於POSTMASTER型別引數,需要重啟生效
取值範圍:字串,長度大於0
該引數分為3個部分,'thread_num, group_num, cpubind_info',這3個部分的具體含義如下:
• thread_num:執行緒池中的執行緒總數,取值範圍是0~4096。其中0的含義是資料庫根據系統CPU core的數量來自動配置執行緒池的執行緒數,如果引數值大於0,執行緒池中的執行緒數等於thread_num。
• group_num:執行緒池中的執行緒分組個數,取值範圍是0~64。其中0的含義是資料庫根據系統NUMA組的個數來自動配置執行緒池的執行緒分組個數,如果引數值大於0,執行緒池中的執行緒組個數等於group_num。
• cpubind_info:執行緒池是否綁核的配置引數。
可選擇的配置方式有集中:
1. '(nobind)' ,執行緒不做綁核;
2. '(allbind)',利用當前系統所有能查詢到的CPU core做執行緒綁核;
3. '(nodebind: 1, 2)',利用NUMA組1,2中的CPU core進行綁核;
4. '(cpubind: 0-30)',利用0-30號CPU core進行綁核。該引數不區分大小寫。
預設值:'16, 2, (nobind)'

二、執行緒池開啟關閉操作

-------------------------------------開啟執行緒池

1.開啟執行緒池方法:
(如下gs_guc命令批次修改整個叢集內所有節點的引數)
gs_guc set –N all –I all –c "enable_thread_pool=on"
gs_guc set –N all –I all –c "thread_pool_attr='240,2(allbind)'"
 
2.重啟資料庫
gs_om -t restart
 
3.確認連線池已經開啟
gsql -p 26000 postgres -c "show all"|grep thread_pool

--------------------------------關閉執行緒池

1.關閉並恢復預設值
gs_guc set –N all –I all –c "enable_thread_pool=off"
gs_guc set –N all –I all –c "thread_pool_attr='16,2,(nobind)'"
2.重啟資料庫
gs_om -t restart
3.確認連線池已經關閉
gsql -p 26000 postgres -c "show all"|grep thread_pool


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2783674/,如需轉載,請註明出處,否則將追究法律責任。

相關文章