可能重复:
如何诊断凶手杀人过程的原因
我在amazon web services(EC2微型实例)上的一台非常小的机器上安装了Ubuntunetworking服务器(Apache + MySQL + PHP)。 网站运行良好,速度非常快。 所以,我们的小stream量似乎并没有放慢服务器。
无论如何, MySQL会经常下载 (至less每周一次),我不明白为什么。 Apache而不是运行良好。 我必须通过SSHlogin并重新启动,然后运行正常:
$ sudo service mysql status mysql stop/waiting $ sudo service mysql start mysql start/running, process 25384
我已经安装了Cacti进行性能监控,并且每当MySQL发生故障时我都可以看到,我的负载平均值高达10(通常低于1)。 这是奇怪的,因为它似乎并没有发生在cronjobs左右。
我也试图检查MySQL日志:慢查询日志(这是启用,我敢肯定),/ /var/log/mysql.log log/ /var/log/mysql.log和/var/log/mysql.err都是空的。 我想可能是系统自动closures它, 因为可用内存不足 ; 那可能吗?
现在我正在尝试设置一个更大的EC2实例,但是我在/var/log/syslog发现了一些看起来很关键的东西(但我不明白)。 我粘贴的相关部分在这里 (MySQL在11:47下了)。
是啊,似乎你的盒子里没有免费的内存,内核杀死它,以保护系统的稳定性。 尝试更多的内存实例!
是的,凶手杀死了你的mysqld。 要发生这种情况,您的服务器configuration不正确,或者其他内容正在泄漏内存。 看着数字我怀疑你只是允许太多内存的MySQL /允许太多的Apache连接的RAM的数量。
您需要调整运行过程的内存使用情况,并限制并发连接数量到apache和mysql – 或者获得更多的内存。