Out of memory: Kill process 17074 (mysqld) score 146 or sacrifice child
所以这个过程最终被杀死了.
这发生在服务器负载的高峰期,主要是因为apache变得疯狂并且吃剩余的可用内存.可能的方法可能是:
>以某种方式改变mysql的优先级,所以它没有被杀死(可能是一个糟糕的修复,因为其他东西将被杀死)
>监视mysql的状态,并在它被杀死时自动重启(我正在思考的那个,但不知道该怎么做).
你怎么看?
数据库服务器是一个共享资源,几乎不应该在生产中以非计划的方式终止.应该导致意外终止的唯一因素是灾难性的硬件或电源故障.大多数配置正确的生产数据库服务器每十年或更少一次具有计划外终止.认真.
该怎么办?
修复您的apache配置.限制它可以使用的工作线程和进程的数量,因此它无法运行.学习如何做到这一点.这至关重要.见:http://httpd.apache.org/docs/current/mod/mpm_common.html#maxrequestworkers
修复您的Web应用中导致您的Apache疯狂运行的缺陷.
如果可以的话,将mysqld服务器从apache移到另一台服务器上,这样两者就不会争用相同的硬件资源.
配置mysqld以限制它将从apache工作线程或其他客户端接受的连接数.您的Web应用程序可能会处理工作线程需要等待连接的情况.看这里. http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_connections
你是EC2微型实例吗?你需要做一些认真的调整.见:http://ubuntuforums.org/showthread.php?t=1979049
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。