Mysql

MariaDB Galera 設置在集群節點上使用的記憶體量截然不同 - 為什麼?

  • October 22, 2014

我們有一個 3 節點 MariaDB Galera 集群。

所有節點都是相同的,每個節點上的配置都是相同的。它們每個都有 64GB 的 RAM。

以下查詢的輸出是28

SELECT CEILING(Total_InnoDB_Bytes*1.6/POWER(1024,3)) RIBPS FROM
(SELECT SUM(data_length+index_length) Total_InnoDB_Bytes
FROM information_schema.tables WHERE engine='InnoDB') A;

我們的數據庫增長很快,機器是專用的,所以innodb_buffer_pool_size現在設置為56G. 原來是設置的256M,今天早上才增加(集群是前兩天才設置的)。

我的問題是為什麼每台機器上使用的 RAM 量差別如此之大,請參見下圖。當我們更改innodb_buffer_pool_size56G(並進行滾動重啟)時,它們都上漲了大約相同的數量(實際上,不是按比例),但正如您所看到的,它們顯然仍然有很大的不同。任何人都可以解釋為什麼嗎?

謝謝!

數據庫機器中使用的物理記憶體

InnoDB 緩衝池記憶體查詢;如果您在其中一個節點上使用較少,那麼您將使用較少的記憶體。

如果您沒有正確地負載平衡查詢,那麼每個節點上使用的記憶體量會有所不同。如果您只是打開一個節點並將其添加到集群中,那麼記憶體的數量將與其他已長時間執行的不同。

在這種情況下是否使用 Galera 並不重要,因為這是一個特定的 InnoDB 問題;確定您可以使用 Galera,但這與您提出的這個記憶體問題無關。

引用自:https://dba.stackexchange.com/questions/63218