Mysql
MariaDB Galera 設置在集群節點上使用的記憶體量截然不同 - 為什麼?
我們有一個 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_size
為56G
(並進行滾動重啟)時,它們都上漲了大約相同的數量(實際上,不是按比例),但正如您所看到的,它們顯然仍然有很大的不同。任何人都可以解釋為什麼嗎?謝謝!
InnoDB 緩衝池記憶體查詢;如果您在其中一個節點上使用較少,那麼您將使用較少的記憶體。
如果您沒有正確地負載平衡查詢,那麼每個節點上使用的記憶體量會有所不同。如果您只是打開一個節點並將其添加到集群中,那麼記憶體的數量將與其他已長時間執行的不同。
在這種情況下是否使用 Galera 並不重要,因為這是一個特定的 InnoDB 問題;確定您可以使用 Galera,但這與您提出的這個記憶體問題無關。