MySQL服务器SWAP使用率高罗致db很慢很卡

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.使用大页内存。
参考链接:http://blog.csdn.net/jacson_bai/article/details/44755109