MySQL 5.6因为OOM导致数据库重启
线上的一套MySQL 5.6的从库,因为OOM而导致数据库重启。
#tail-50/var/log/messagesNov1316:00:40app-push-db2kernel:Outofmemory:Killprocess26121(mysqld)score957orsacrificechildNov1316:00:40app-push-db2kernel:Killedprocess26121(mysqld)total-vm:18804176kB,anon-rss:15541596kB,file-rss:0kB,shmem-rss:0kB
报错原因:
这台实例所在的服务器上面部署了单实例MySQL,物理内存为16G,分配给数据库的缓存innodb_fuffer_pool_size为12G。
#free-gtotalusedfreesharedbuff/cacheavailableMem:15100054Swap:000
为了提高性能,这台实例关闭了磁盘的swap交换。
#cat/etc/rc.local#!/bin/bash#THISFILEISADDEDFORCOMPATIBILITYPURPOSES##Itishighlyadvisabletocreateownsystemdservicesorudevrules#torunscriptsduringbootinsteadofusingthisfile.##Incontrasttopreviousversionsduetoparallelexecutionduringboot#thisscriptwillNOTberunafterallotherservices.##Pleasenotethatyoumustrun'chmod+x/etc/rc.d/rc.local'toensure#thatthisscriptwillbeexecutedduringboot.touch/var/lock/subsys/localswapoff-a
当客户端连接多的时候,导致内存资源耗尽。
解决方法:
将innodb_buffer_pool_size调整为10G,预留出一些内存给操作系统和客户端连接。
重启数据库,使参数生效。
#grepinnodb_buffer_pool/etc/my.cnfinnodb_buffer_pool_size=10G
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。