程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL服務器SWAP使用率高導致db很慢很卡

MySQL服務器SWAP使用率高導致db很慢很卡

編輯:MySQL綜合教程

MySQL服務器SWAP使用率高導致db很慢很卡


MySQL服務器SWAP使用率高導致db很慢很卡

環境介紹:
CentOS:6.X
MySQL版本:5.5.40
故障原因分析:
物理內存是16G,swap是4G。此時MySQL本身已經占用了14G物理內存,而同時其他應用程序或者系統進程又需要3G內存,這時候操作系統就可能把MySQL所擁有的一部分地址空間映射到swap上去,有可能產生swap的操作事件:

產生的主要原因:
1.mysqldump以及mysql import很大的庫或者表;
2.數據庫層大批量的並發操作的io writer和io read操作;
3.在OS層copy一個大文件,比如上百GB的數據庫備份文件。

通常的解決辦法:
1.釋放SWAP空間
#swapoff -a
然後開啟swapon
#swapon -a

2.添加MySQL的配置參數memlock
這個參數會強迫mysqld進程的地址空間一直被鎖定在物理內存上
設置max locked memory
#echo "mysql hard memlock unlimited ">> /etc/security/limits.conf
#echo "mysql soft memlock unlimited ">> /etc/security/limits.conf

3.修改內核參數
#echo "vm.swappiness=0" >>/etc/sysctl.conf

4.修改my.cnf參數:
修改my.cnf裡面的innodb_flush_method參數,開啟O_DIRECT模式。

5.使用大頁內存。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved