W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Oceanbase 數(shù)據(jù)庫(kù)并行查詢(PX)的參數(shù)決定了并行查詢的速度,主要包括并行度和 EXCHANGE 相關(guān)參數(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ù)主要用來(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)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: