apache停止响应然后崩溃
Apache(2.4.25 FPM/FastCGI)在我的wordpress多站点网站上停止响应并崩溃一段时间后。apache停止响应然后崩溃
由于某种原因,它运行良好的几天,直到我改变了使用这个脚本github.com/interconnectit/Search-Replace-DB(可能不是原因)的WordPress的(亩)域。
重新启动后,它可以工作大约一个小时,然后再次窒息。
我已经添加了一个mysql慢查询日志,但它是空的。
Apache的error_log中有多处错误,像这样的:
[Wed Sep 06 08:50:27.941819 2017] [proxy_fcgi:error] [pid 25444:tid 140610719610624] (70007)The timeout specified has expired: [client x.x.x.x:53398] AH01075: Error dispatching request to : (polling)
偶尔出现这个错误太:
[Wed Sep 06 09:13:33.296777 2017] [core:notice] [pid 10710:tid 140611211331392] AH00051: child pid 25582 exit signal Segmentation fault (11), possible coredump in /opt/bitnami/apache2
另一个偶然的出错(预期由于多个AH01075超时错误):
[Mon Sep 04 20:18:58.758718 2017] [mpm_event:error] [pid 19928:tid 140675798046528] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
停止mysql服务器杀死我的网站,但似乎保持apache w好的,至少在我测试过的一两个小时内。
是457452在以下进程列表中mysqld.bin的值是否正常? (PS -e -orss =,= ARGS |排序-b -k1,1n | PR - TW $柱)
2128 /sbin/init
2400 php-fpm: master process (/opt/bitnami/php/etc/php-fpm.conf)
3840 -bash
4244 sshd: ubuntu [priv]
6928 /usr/bin/gonit
11036 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
11320 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
11364 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
11592 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
20592 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
57668 php-fpm: pool wordpress
57716 php-fpm: pool wordpress
65252 php-fpm: pool wordpress
67608 php-fpm: pool wordpress
68776 php-fpm: pool wordpress
457452 /opt/bitnami/mysql/bin/mysqld.bin --defaults-file=/opt/bitnami/mysql/my.cnf --basedir=/opt/bi
PHP版本30年6月5日
mysql.bin版14.14 DISTRIB 36年6月5日
Ubuntu的14.04.5(上AWS bitnami图像)
内存使用而阿帕奇没有响应:使用:992mb的883mb
的php.ini脚本memory_limit的= 128M
有点长,把它放在评论,所以答复作为答案。
你记录任何PHP错误?从你提出什么,到目前为止,我的理论将是:
- 您使用该脚本来执行搜索&取代的分贝,但它执行的不好造成畸形或损坏的数据。
- 这会导致您的PHP脚本依赖于mysql由于数据格式不正确或损坏而失灵。
- 因为你的php在fcgi上没有响应,你的apache会等待它并持有资源。
- 所有的请求都挂起,现在你用完了资源并开始分段。
- 然后,愚蠢的apache,看到你没有计算孩子,要求你提高它并没有意识到你已经无法理解物理资源。典型的apache ...
- 因为apache现在没有空闲的孩子,所以它不能再接受任何请求,并且看起来好像所有的apache都被破坏,尽管它只是被糟糕的fcgi进程阻塞了。
如果我的理论是正确的,你应该。
检查没有任何MySQL数据的损坏
检查是在MySQL替换的数据是如你所预期的
检查PHP错误日志,因为他们应该被记录如果可以的话。
如果仅仅清理数据是不够的,您应该隔离实际上造成堵塞的原因的PHP进程并将其删除。理想情况下,无论数据有多糟糕,php程序都应该干净地死去。
祝你好运狩猎。
你说得对。我不知道什么数据被损坏,但恢复到旧的数据库解决了这个问题。 – ramiwi
哪个操作系统?崩溃时的内存使用情况如何?最后,您是否看到内核日志中有任何错误? –
值(如果有的话)相当低。但是由于你的错误看起来像一个非OOMkilled内存短缺......有多少内存可用? – LSerni
@LSerni总共1GB,php脚本memory_limit = 128M,由于某些原因,它运行良好几天,直到我改变使用这个脚本的WordPress的域名https://github.com/interconnectit/Search-Replace-DB(可能不是原因) – ramiwi