2016-11-15 73 views
0

我有一個32GB RAM的MYSQL服務器。它仍然是全新的,除了默認的數據庫外沒有附加數據庫。然而,當我運行free -m命令,我得到如下:MYSQL默認的RAM消耗

 total  used  free shared buff/cache available 
Mem: 32768  2972  29718  10  76  29692 
Swap: 16384  0  16384 

當我連接的主機,他們告訴我說,MYSQL默認佔用主內存的10%,他們勸我配置以下參數:

key_buffer_size = 8192M 
myisam_sort_buffer_size = 10922M 
innodb_buffer_pool_size = 16384M 

我認爲這些值代表可以分配的最大消耗量,而不是默認消耗的值,它們是MYSQL推薦的值。例如8192M/32768M(總內存)= 25%,這是推薦值。任何人都可以解釋這種內存消耗?

回答

3

我認爲這些價值觀代表什麼默認

整個InnoDB緩衝池在服務器啓動時分配的消耗可能被未分配的最大的消耗,所以降低innodb_buffer_pool_size規模將減少初始內存足跡由MySQL使用。

我相信其他MySQL緩衝區也是如此,例如key_buffer_sizemyisam_sort_buffer_size

但是,在調整這些參數時應考慮實際的服務器工作負載。啓動時使用的內存量不相關;有趣的是當服務器與真實數據庫一起使用時,內存使用情況如何。

由於您在其他地方提及您使用的是Jelastic,如果您想手動調整這些設置,則應該從my.cnf(通常位於/靠近第1行)刪除#Jelastic autoconfiguration mark.行;否則會自動縮放以適應您的雲端縮放限制(即,每次調整雲端限制或重新啓動MySQL時,您的更改都會被覆蓋)。

0

的key_buffer_size

的key_buffer_size變量的最大大小爲4 GB在32臺機器上,以及較大的64臺機器。 MySQL建議您保持key_buffer_size小於或等於機器上RAM的25%。

innodb_buffer_pool_size

推薦範圍:60〜80%

MySQL 5.7 and it’s online buffer pool resize feature應該使這是一個更容易遵循的原則。