日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

計(jì)算節(jié)點(diǎn)范圍選擇與并行度控制

更新時(shí)間:

本文介紹了彈性跨機(jī)并行查詢(ePQ)如何進(jìn)行計(jì)算節(jié)點(diǎn)范圍選擇以及并行度控制。

前提條件

支持的PolarDB PostgreSQL版的版本如下:

  • PostgreSQL 11(內(nèi)核小版本1.1.20及以上)

  • PostgreSQL 14(內(nèi)核小版本14.6.6.0及以上)

說明

您可通過如下語句查看PolarDB PostgreSQL版的內(nèi)核小版本的版本號(hào):

  • PostgreSQL 11

    show polar_version;
  • PostgreSQL 14

    select version();

簡(jiǎn)介

PolarDB PostgreSQL版的彈性跨機(jī)并行查詢(ePQ)特性提供了精細(xì)的粒度控制方法,可以合理使用集群內(nèi)的計(jì)算資源。在最大程度利用閑置計(jì)算資源進(jìn)行并行查詢,提升資源利用率的同時(shí),避免了對(duì)其它業(yè)務(wù)負(fù)載產(chǎn)生影響:

  • ePQ可以動(dòng)態(tài)調(diào)整集群中參與并行查詢的計(jì)算節(jié)點(diǎn)范圍,避免使用負(fù)載較高的計(jì)算節(jié)點(diǎn)。

  • ePQ支持為每條查詢動(dòng)態(tài)調(diào)整在計(jì)算節(jié)點(diǎn)上的并行度,避免ePQ并行查詢進(jìn)程對(duì)計(jì)算資源的消耗影響到相同節(jié)點(diǎn)上的其他進(jìn)程。

計(jì)算節(jié)點(diǎn)范圍選擇

參數(shù)說明

參數(shù)

說明

polar_px_nodes

用于指定參與ePQ的計(jì)算節(jié)點(diǎn)范圍,默認(rèn)值為空,表示所有只讀節(jié)點(diǎn)都參與ePQ并行查詢。

說明
  • 通過以下命令,查看參與ePQ的計(jì)算節(jié)點(diǎn)范圍。

    SHOW polar_px_nodes;
  • 如果部分只讀節(jié)點(diǎn)負(fù)載較高,則可以通過修改polar_px_nodes參數(shù)設(shè)置僅特定幾個(gè)只讀節(jié)點(diǎn)參與ePQ并行查詢。

  • polar_px_nodes參數(shù)的合法格式是一個(gè)以英文逗號(hào)分隔的節(jié)點(diǎn)名稱列表。

polar_px_use_primary

用于設(shè)置讀寫節(jié)點(diǎn)是否參與ePQ并行查詢,取值如下:

  • ON:讀寫節(jié)點(diǎn)參與ePQ并行查詢。

  • OFF:讀寫節(jié)點(diǎn)不參與ePQ并行查詢。

說明
  • 該參數(shù)適用于PostgreSQL 14。

  • 執(zhí)行以下命令,設(shè)置讀寫節(jié)點(diǎn)參與ePQ并行查詢。

    SET polar_px_use_primary TO ON;

polar_px_use_master

用于設(shè)置讀寫節(jié)點(diǎn)是否參與ePQ并行查詢,取值如下:

  • ON:讀寫節(jié)點(diǎn)參與ePQ并行查詢。

  • OFF:讀寫節(jié)點(diǎn)不參與ePQ并行查詢

說明
  • 該參數(shù)適用于PostgreSQL 11。

  • 執(zhí)行以下命令,設(shè)置讀寫節(jié)點(diǎn)參與ePQ并行查詢。

    SET polar_px_use_master TO ON;

示例

  1. 安裝polar_monitor插件,用于獲取節(jié)點(diǎn)名稱。

    CREATE EXTENSION IF NOT EXISTS polar_monitor;
  2. 通過polar_monitor插件提供的集群拓?fù)湟晥D,查詢集群中所有計(jì)算節(jié)點(diǎn)名稱。

    SELECT name,slot_name,type FROM polar_cluster_info;

    查詢結(jié)果如下:

     name  | slot_name |  type
    -------+-----------+---------
     node0 |           | Primary
     node1 | standby1  | Standby
     node2 | replica1  | Replica
     node3 | replica2  | Replica
    (4 rows)
    說明

    其中:

    • Primary:表示讀寫節(jié)點(diǎn)。

    • Replica:表示只讀節(jié)點(diǎn)。

    • Standby:表示備庫節(jié)點(diǎn)。

  3. 使用負(fù)載較低的只讀節(jié)點(diǎn)node2node3參與ePQ并行查詢。

    SET polar_px_nodes = 'node2,node3';
    SHOW polar_px_nodes;

    結(jié)果顯示如下:

     polar_px_nodes
    ----------------
     node2,node3
    (1 row)

并行度控制

參數(shù)說明

參數(shù)

說明

polar_px_dop_per_node

用于設(shè)置當(dāng)前會(huì)話中的ePQ查詢?cè)诿總€(gè)計(jì)算節(jié)點(diǎn)上的執(zhí)行單元(Segment)數(shù)量,每個(gè)執(zhí)行單元會(huì)為其需要執(zhí)行的每一個(gè)計(jì)劃分片(Slice)啟動(dòng)一個(gè)進(jìn)程。默認(rèn)值為3,通用最佳實(shí)踐值為當(dāng)前計(jì)算節(jié)點(diǎn)CPU核心數(shù)的一半。

說明
  • 如果計(jì)算節(jié)點(diǎn)的CPU負(fù)載較高時(shí),可以酌情遞減該參數(shù),控制計(jì)算節(jié)點(diǎn)的CPU占用率至80%以下。

  • 如果查詢性能不佳時(shí),可以酌情遞增該參數(shù),也需要保持計(jì)算節(jié)點(diǎn)的CPU占用率不高于 80%。否則可能會(huì)拖慢其他的后臺(tái)進(jìn)程。

示例

  1. 創(chuàng)建一張表。

    CREATE TABLE test(id INT);
  2. 假設(shè)集群內(nèi)有兩個(gè)只讀節(jié)點(diǎn),polar_px_nodes參數(shù)為空,此時(shí)ePQ將使用集群內(nèi)的所有只讀節(jié)點(diǎn)參與并行查詢。polar_px_dop_per_node參數(shù)的值為3,表示每個(gè)計(jì)算節(jié)點(diǎn)上將會(huì)有三個(gè)執(zhí)行單元。執(zhí)行計(jì)劃如下。

    SHOW polar_px_nodes;
     polar_px_nodes
    ----------------
    
    (1 row)
    
    SHOW polar_px_dop_per_node;
     polar_px_dop_per_node
    -----------------------
     3
    (1 row)
    
    EXPLAIN SELECT * FROM test;
                                      QUERY PLAN
    -------------------------------------------------------------------------------
     PX Coordinator 6:1  (slice1; segments: 6)  (cost=0.00..431.00 rows=1 width=4)
       ->  Partial Seq Scan on test  (cost=0.00..431.00 rows=1 width=4)
     Optimizer: PolarDB PX Optimizer
    (3 rows)

    從執(zhí)行計(jì)劃中可以看出,兩個(gè)只讀節(jié)點(diǎn)上總計(jì)有六個(gè)執(zhí)行單元(segments: 6)將會(huì)執(zhí)行這個(gè)計(jì)劃中唯一的計(jì)劃分片slice1,表示總計(jì)會(huì)有六個(gè)進(jìn)程并行執(zhí)行當(dāng)前查詢。

  3. polar_px_dop_per_node參數(shù)調(diào)整為4,再次執(zhí)行查詢,兩個(gè)只讀節(jié)點(diǎn)上總計(jì)會(huì)有八個(gè)執(zhí)行單元參與當(dāng)前查詢。由于執(zhí)行計(jì)劃中只有一個(gè)計(jì)劃分片slice1,則表示總計(jì)會(huì)有八個(gè)進(jìn)程并行執(zhí)行當(dāng)前查詢。

    SET polar_px_dop_per_node TO 4;
    
    EXPLAIN SELECT * FROM test;
                                      QUERY PLAN
    -------------------------------------------------------------------------------
     PX Coordinator 8:1  (slice1; segments: 8)  (cost=0.00..431.00 rows=1 width=4)
       ->  Partial Seq Scan on test  (cost=0.00..431.00 rows=1 width=4)
     Optimizer: PolarDB PX Optimizer
    (3 rows)
  4. 設(shè)置polar_px_use_primary參數(shù),讓讀寫節(jié)點(diǎn)也參與查詢,則讀寫節(jié)點(diǎn)上也將會(huì)有四個(gè)執(zhí)行單元參與ePQ并行執(zhí)行,集群內(nèi)總計(jì)12個(gè)進(jìn)程參與并行執(zhí)行。

    SET polar_px_use_primary TO ON;
    
    EXPLAIN SELECT * FROM test;
                                       QUERY PLAN
    ---------------------------------------------------------------------------------
     PX Coordinator 12:1  (slice1; segments: 12)  (cost=0.00..431.00 rows=1 width=4)
       ->  Partial Seq Scan on test  (cost=0.00..431.00 rows=1 width=4)
     Optimizer: PolarDB PX Optimizer
    (3 rows)