文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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

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

  • TotalSendBufferMemory.  此參數可以針對所有類型的 NDB Cluster 節點進行設定,也就是說,可以在 [ndbd][mgm][api] (或 [mysql]) 的 config.ini 檔案區段中設定。它表示每個節點將配置的總記憶體量 (以位元組為單位),供所有已組態的傳輸器使用。如果設定此參數,則其最小值為 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 表格來監控傳送緩衝區記憶體使用情況,並偵測可能對效能產生不利影響的減速和過載情況。