文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  設定 NDB Cluster 傳送緩衝區參數

25.4.3.14 設定 NDB Cluster 傳送緩衝區參數

NDB 核心採用一個統一的傳送緩衝區,其記憶體是從所有傳輸器共享的池中動態分配的。這表示傳送緩衝區的大小可以根據需要進行調整。統一傳送緩衝區的配置可以透過設定以下參數來完成

  • TotalSendBufferMemory.  此參數可以針對所有類型的 NDB Cluster 節點設定,也就是說,可以在 config.ini 檔案的 [ndbd][mgm][api] (或 [mysql]) 區段中設定。它表示每個節點為所有設定的傳輸器使用的記憶體總量 (以位元組為單位)。如果設定此參數,其最小值為 256KB;最大值為 4294967039。

    為了與現有配置向後相容,此參數的預設值是所有設定的傳輸器的最大傳送緩衝區大小的總和,再加上每個傳輸器額外的 32KB (一頁)。最大值取決於傳輸器的類型,如下表所示

    表 25.22 傳輸器類型及其最大傳送緩衝區大小

    傳輸器 最大傳送緩衝區大小 (位元組)
    TCP SendBufferMemory (預設值 = 2M)
    SHM 20K

    這使得現有配置的功能與 NDB Cluster 6.3 及更早版本的功能幾乎相同,每個傳輸器都有相同的記憶體量和傳送緩衝區空間可用。但是,一個傳輸器未使用的記憶體無法供其他傳輸器使用。

  • OverloadLimit.  此參數在 config.ini 檔案的 [tcp] 區段中使用,表示傳送緩衝區中必須存在的未傳送資料量 (以位元組為單位),才能將連線視為過載。當發生此類過載情況時,影響過載連線的交易會失敗,並顯示 NDB API 錯誤 1218 (NDB 核心中的傳送緩衝區過載),直到過載狀態解除。預設值為 0,在這種情況下,指定連線的有效過載限制計算方式為 SendBufferMemory * 0.8。此參數的最大值為 4G。

  • SendBufferMemory.  此值表示單一傳輸器可能使用的記憶體硬性限制,此限制來自 TotalSendBufferMemory 指定的整個池。但是,所有設定的傳輸器的 SendBufferMemory 總和可能會大於為指定節點設定的 TotalSendBufferMemory。這是一種在使用許多節點時節省記憶體的方法,只要所有傳輸器永遠不需要同時使用最大記憶體量即可。

您可以使用 ndbinfo.transporters 資料表來監控傳送緩衝區的記憶體使用情況,並偵測可能對效能造成負面影響的減速和過載狀況。