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

并行度參數(shù)
并行度相關(guān)參數(shù)主要決定每個(gè) query 并發(fā)時(shí)的 worker 個(gè)數(shù)。
|
參數(shù)名稱 |
描述 |
取值范圍 |
默認(rèn)值 |
配置建議 |
|---|---|---|---|---|
parallel_max_servers | 控制每個(gè)服務(wù)器最大的并行執(zhí)行線程個(gè)數(shù),所有PX worker 加起來(lái)不能超過(guò)該值。 | [0, 1800] | 10(目前會(huì)根據(jù) CPU 個(gè)數(shù)計(jì)算得到,以實(shí)際大小為準(zhǔn)) | 該參數(shù)主要是控制 PX 場(chǎng)景下所有 PX worker 總數(shù),建議值為可用 CPU個(gè)數(shù)的倍數(shù)關(guān)系。 |
parallel_servers_target | 當(dāng) query 準(zhǔn)備排隊(duì)之前,控制檢查 query 要求的并行度和已統(tǒng)計(jì)的 worker 總和是否超過(guò)該值。如果超過(guò)該值,則 query 需要排隊(duì),否則 query 繼續(xù)執(zhí)行。 | [0, 1800] | 10(目前會(huì)根據(jù) CPU 個(gè)數(shù)計(jì)算得到,以實(shí)際大小為準(zhǔn)) | 該參數(shù)主要是控制 PX 場(chǎng)景下,當(dāng) query 準(zhǔn)備進(jìn)行并行查詢時(shí),如果沒(méi)有足夠 worker 處理該 query,決定是否繼續(xù)進(jìn)行還是排隊(duì)等待。 |
parallel_max_servers 參數(shù)用于控制最大的并發(fā)度,parallel_servers_target 參數(shù)用來(lái)決策 query 在并行查詢時(shí)是否排隊(duì),兩者需要協(xié)同工作。如果只使用 parallel_max_servers 設(shè)置最大并行度,當(dāng)查詢過(guò)多時(shí),會(huì)導(dǎo)致所有 worker 都被調(diào)度起來(lái),導(dǎo)致 CPU 等資源緊張,查詢性能下降。在 CPU 等資源有限的情況下,使用 parallel_servers_target 控制 query 進(jìn)行排隊(duì)可以提高整個(gè)并發(fā)的吞吐量。
可以通過(guò) SHOW VARIABLES 來(lái)查看這些參數(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ù)不需要設(shè)置,對(duì) PX 框架無(wú)效。
EXCHANGE(Shuffle)參數(shù)
EXCHANGE(Shuffle)參數(shù)主要用來(lái)控制在每個(gè) DFO 之間進(jìn)行數(shù)據(jù)傳輸時(shí)的參數(shù)控制,也就是數(shù)據(jù)進(jìn)行 shuffle 時(shí)的內(nèi)存控制。Oceanbase 數(shù)據(jù)庫(kù)將數(shù)據(jù)傳輸封裝成了叫做 DTL(Data Transfer layer)的模塊。
|
參數(shù)名稱 |
描述 |
取值范圍 |
默認(rèn)值 |
配置建議 |
|---|---|---|---|---|
dtl_buffer_size | 控制 EXCHANGE 算子之間(即transmit 和 receive 之間)發(fā)送數(shù)據(jù)時(shí),每次發(fā)送數(shù)據(jù)的 buffer 的大小。即當(dāng)數(shù)據(jù)達(dá)到了該值上限才進(jìn)行發(fā)送,減少每行傳輸?shù)拇鷥r(jià)。 | [0, 1800] | 10(目前會(huì)根據(jù) CPU 個(gè)數(shù)計(jì)算得到,以實(shí)際大小為準(zhǔn)) | PX 場(chǎng)景下,EXCHANGE 之間發(fā)送數(shù)據(jù)依賴于該參數(shù)大小,一般不需要調(diào)整該參數(shù),如果是為了減少發(fā)送數(shù)據(jù)次數(shù)等可以嘗試進(jìn)行修改,一般不建議修改該值大小。 |
可以通過(guò) SHOW PARAMETERS 來(lái)查看參數(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) 網(wǎng)站欄目:創(chuàng)新互聯(lián)OceanBase教程:OceanBase并行查詢的參數(shù)調(diào)優(yōu)
網(wǎng)站鏈接:http://www.5511xx.com/article/ccegejc.html


咨詢
建站咨詢
