MySQL避免使用swap分區的方法

SWAP是操作系統虛擬出來的一部分內存地址,它的物理存儲元件是磁盤。在備份數據或恢復數據時,文件系統會向Linux系統請求大量的內存作爲cache。在物理內存使用殆盡時候,爲了確保程序運行,往往會將另外的一些佔用物理內存地址空間的程序映射到swap分區上。
MySQL程序運行時,物理內存爲MySQL分配了大量的物理地址空間,以提高執行的速率。爲了避免在執行消耗大量內存的操作時將MySQL所擁有的部分物理內存地址空間映射到swap分區上,可做一下調整:
1.修改系統內核參數/proc/sys/vm/swappiness。調整系統使用swap分區的傾向性,數值越低越傾向於釋放文件系統的cache,不能避免Linux系統時候swap分區。  swappiness=0表示最大限度使用物理內存,然後纔是swap分區。
swappiness=100表示積極使用swap分區,並且將內存上的數據及時的映射到swap分區上。
2.修改MySQL參數innodb_flush_method,開啓O_DIRECT模式。Innodbbuffer pool會直接繞過文件系統cache來訪問磁盤,但是redo log依舊會使用文件系統cacheRedo log是覆寫模式的,即使使用了文件系統的cache也不會佔用太多。
3.添加MySQL配置參數memlock。將MySQL鎖定在內存中防止被swapping out
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章