新聞中心
Oceanbase 數(shù)據(jù)庫并行查詢(PX)的參數(shù)決定了并行查詢的速度,主要包括并行度和 EXCHANGE 相關參數(shù) 。

并行度參數(shù)
并行度相關參數(shù)主要決定每個 query 并發(fā)時的 worker 個數(shù)。
|
參數(shù)名稱 |
描述 |
取值范圍 |
默認值 |
配置建議 |
|---|---|---|---|---|
parallel_max_servers | 控制每個服務器最大的并行執(zhí)行線程個數(shù),所有PX worker 加起來不能超過該值。 | [0, 1800] | 10(目前會根據(jù) CPU 個數(shù)計算得到,以實際大小為準) | 該參數(shù)主要是控制 PX 場景下所有 PX worker 總數(shù),建議值為可用 CPU個數(shù)的倍數(shù)關系。 |
parallel_servers_target | 當 query 準備排隊之前,控制檢查 query 要求的并行度和已統(tǒng)計的 worker 總和是否超過該值。如果超過該值,則 query 需要排隊,否則 query 繼續(xù)執(zhí)行。 | [0, 1800] | 10(目前會根據(jù) CPU 個數(shù)計算得到,以實際大小為準) | 該參數(shù)主要是控制 PX 場景下,當 query 準備進行并行查詢時,如果沒有足夠 worker 處理該 query,決定是否繼續(xù)進行還是排隊等待。 |
parallel_max_servers 參數(shù)用于控制最大的并發(fā)度,parallel_servers_target 參數(shù)用來決策 query 在并行查詢時是否排隊,兩者需要協(xié)同工作。如果只使用 parallel_max_servers 設置最大并行度,當查詢過多時,會導致所有 worker 都被調(diào)度起來,導致 CPU 等資源緊張,查詢性能下降。在 CPU 等資源有限的情況下,使用 parallel_servers_target 控制 query 進行排隊可以提高整個并發(fā)的吞吐量。
可以通過 SHOW VARIABLES 來查看這些參數(shù)的值,如下例所示:
obclient>SHOW VARIABLES LIKE '%paral%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| ob_max_parallel_degree | 32 |
| ob_stmt_parallel_degree | 1 |
| parallel_max_servers | 5 |
| parallel_servers_target | 4 |
+-------------------------+-------+
4 rows in set (0.00 sec)
注意
ob_stmt_parallel_degree參數(shù)不需要設置,對 PX 框架無效。
EXCHANGE(Shuffle)參數(shù)
EXCHANGE(Shuffle)參數(shù)主要用來控制在每個 DFO 之間進行數(shù)據(jù)傳輸時的參數(shù)控制,也就是數(shù)據(jù)進行 shuffle 時的內(nèi)存控制。Oceanbase 數(shù)據(jù)庫將數(shù)據(jù)傳輸封裝成了叫做 DTL(Data Transfer layer)的模塊。
|
參數(shù)名稱 |
描述 |
取值范圍 |
默認值 |
配置建議 |
|---|---|---|---|---|
dtl_buffer_size | 控制 EXCHANGE 算子之間(即transmit 和 receive 之間)發(fā)送數(shù)據(jù)時,每次發(fā)送數(shù)據(jù)的 buffer 的大小。即當數(shù)據(jù)達到了該值上限才進行發(fā)送,減少每行傳輸?shù)拇鷥r。 | [0, 1800] | 10(目前會根據(jù) CPU 個數(shù)計算得到,以實際大小為準) | PX 場景下,EXCHANGE 之間發(fā)送數(shù)據(jù)依賴于該參數(shù)大小,一般不需要調(diào)整該參數(shù),如果是為了減少發(fā)送數(shù)據(jù)次數(shù)等可以嘗試進行修改,一般不建議修改該值大小。 |
可以通過 SHOW PARAMETERS 來查看參數(shù)的值,如下例所示:
obclient>SHOW PARAMETERS LIKE '%dtl%';
+-------+----------+----------------+----------+-----------------+-----------+-------+---------------+----------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+----------------+----------+-----------------+-----------+-------+---------------+----------+---------+---------+-------------------+
| zone1 | observer | 100.81.152.114 | 36500 | dtl_buffer_size | NULL | 64K | to be removed | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+----------------+----------+-----------------+-----------+-------+---------------+----------+---------+---------+-------------------+
1 row in set (0.01 sec) 名稱欄目:創(chuàng)新互聯(lián)OceanBase教程:OceanBase并行查詢的參數(shù)調(diào)優(yōu)
URL標題:http://fisionsoft.com.cn/article/ccegejc.html


咨詢
建站咨詢
