内核试图用sigkill杀死MySQL

我为MySQL运行一个Ubuntu服务器。

服务器信息

  • Ubuntu 12.10
  • MySQL通过apt安装
  • 内存:512M
  • innodb_buffer_pool_size :300M
  • 在这个盒子上没有运行其他内存密集型应用程序。

问题

每天早上,在大约。 上午6:40有些事情会引起记忆的显着变化:

https://dl.dropbox.com/u/12520837/mem.s.png

与此同时,似乎正在发生一个系统的“杀死”正在运行的进程,导致MySQL重新启动。

4月10日06:43:40 mysql-01内核:[1866472.511966] select 1(init),adj 0,size 41,kill

4月10日06:43:40 mysql-01内核:[1866472.511973]select385(dbus-daemon),adj 0,大小44,杀

Apr 10 06:43:40 mysql-01 kernel:[1866472.511975] select 389(rsyslogd),adj 0,size 124,kill

Apr 10 06:43:40 mysql-01 kernel:[1866472.511982] select 4578(snmpd),adj 0,size 160,kill

4月10日06:43:40 mysql-01内核:[1866472.514157] select 1(init),adj 0,size 41,kill

4月10日06:43:40 mysql-01内核:[1866472.514164]select385(dbus-daemon),adj 0,大小44,杀

Apr 10 06:43:40 mysql-01 kernel:[1866472.514166] select 389(rsyslogd),adj 0,size 124,kill

4月10日06:43:40 mysql-01内核:[1866472.514171]select4578(snmpd),adj 0,大小160,杀

4月10日06:43:44 mysql-01 / etc / mysql / debian-start [21807]:根据需要升级MySQL表。

4月10日06:43:45 mysql-01 / etc / mysql / debian-start [21810]:/ usr / bin / mysql_upgrade:'–basedir'选项总是被忽略

4月10日06:43:45 mysql-01 / etc / mysql / debian-start [21810]:查找'mysql'为:/ usr / bin / mysql

4月10日06:43:45 mysql-01 / etc / mysql / debian-start [21810]:寻找'mysqlcheck'为:/ usr / bin / mysqlcheck

4月10日06:43:45 mysql-01 / etc / mysql / debian-start [21810]:这个MySQL的安装已经升级到5.5.29,如果还需要运行mysql_upgrade

4月10日06:43:45 mysql-01 / etc / mysql / debian-start [21821]:检查不安全的root帐户。 4月10日06:43:45 mysql-01 / etc / mysql / debian-start [21826]:触发所有MyISAM表的myisam-recover

任何帮助诊断这将非常感谢!

内核检测到内存不足,可能是因为某个进程正在运行。

通常OOM杀手会尝试识别这个过程,并杀死它。 杀死mysql的原因是因为这可能是当前正在使用最多内存的进程,所以这是一个非常可能的运行野生进程的候选人。

但是,snmpd似乎也是罪魁祸首。 (它占用了大量的160MB的空间)snmpd是一个负责监听snmpstream量的deamon,看起来很奇怪。

由于每天都在同一时间发生,请检查您的日常cron工作 。 并检查你的snmpd日志文件。 同时检查在那个时候连接的连接。 (来自sshd)

所有这些日志文件应该显示在/ var / log / xxx中的某处

如果没有任何意外,请查看日志中提到的其他进程的日志文件。 (mysql和rsyslogd)

另外,从图表来看,平均只有66MB的空闲空间,而运行内存问题的方式也只有6.40,几乎有20%的时间less于几MB的空闲空间,而不超过100MB空闲空间。 (如果我正确地看到洋红色条是空闲的内存?)