MySQL5.6因为OOM导致数据库重启
线上的一套MySQL 5.6的从库,因为OOM而导致数据库重启。
成都创新互联公司长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为尖草坪企业提供专业的网站制作、成都网站设计,尖草坪网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
# tail -50 /var/log/messages Nov 13 16:00:40 app-push-db2 kernel: Out of memory: Kill process 26121 (mysqld) score 957 or sacrifice child Nov 13 16:00:40 app-push-db2 kernel: Killed process 26121 (mysqld) total-vm:18804176kB, anon-rss:15541596kB, file-rss:0kB, shmem-rss:0kB
报错原因:
这台实例所在的服务器上面部署了单实例MySQL,物理内存为16G,分配给数据库的缓存innodb_fuffer_pool_size为12G。
# free -g total used free shared buff/cache available Mem: 15 10 0 0 5 4 Swap: 0 0 0
为了提高性能,这台实例关闭了磁盘的swap交换。
# cat /etc/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. touch /var/lock/subsys/local swapoff -a
当客户端连接多的时候,导致内存资源耗尽。
解决方法:
将innodb_buffer_pool_size调整为10G,预留出一些内存给操作系统和客户端连接。
重启数据库,使参数生效。
# grep innodb_buffer_pool /etc/my.cnf innodb_buffer_pool_size=10G
标题名称:MySQL5.6因为OOM导致数据库重启
当前地址:http://cdiso.cn/article/ihedog.html