环境介绍:
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
时间: 2024-11-08 00:03:01