PHP不会杀死进程

时间:2019-01-16 12:55:26

标签: php wordpress nginx fpm

我正在配置新服务器以运行最新版本的wordpress。经过一段时间的运行后,所有请求开始返回504超时。我检查了所有来自nginx和php的日志,没有错误。运行后服务php7.2的状态

我发现了这种情况:

service php7.2 status

某件事阻止了我的php进程,并且php不会终止该进程。当所有进程都忙时,我的服务器停止了。

我使用以下程序配置了我的液滴:

  • Ubuntu 18.04
  • Php 7.2.10
  • Mysql 5.7.24
  • Nginx 1.14.0

我的www.conf配置了这些参数(如果我增加了最大子项,则服务器延迟会更多停止)

pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 10

我尝试使用默认配置运行ubuntu,使用php 7.0的ubuntu 16,但是在所有Droplet中都出现了相同的错误。仅此wordpress实例有错误。

我在这里发布了所有配置,但是我不知道该错误是否可能是由于其他原因,例如应用。我将其从其他服务器(ubuntu 14.04,php 5.6)中移出,并将所有文件复制到此新的Droplet中。也许是某些插件或类似的东西,因为只有此实例有错误(我将其他6个wordpress移到了具有相同配置的其他Droplet上,未发现错误)。

编辑1->使用strace调试nginx

我正在用strace调试过程(Devon建议)。结果是:

几乎所有结果:

1021  epoll_wait(10,  <unfinished ...>
1023  <... epoll_wait resumed> 0x55e8211180a0, 512, -1) = -1 EINTR (Interrupted system call)
1023  --- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---
1023  rt_sigreturn({mask=[]})           = -1 EINTR (Interrupted system call)

有时它显示:

1023  epoll_wait(14,  <unfinished ...>
1024  <... epoll_wait resumed> 0x55e8211180a0, 512, -1) = -1 EINTR (Interrupted system call)
1024  --- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---
1024  rt_sigreturn({mask=[]})           = -1 EINTR (Interrupted system call)
1024  gettid()                          = 1024
1024  write(4, "2019/01/16 23:18:18 [error] 1024"..., 360) = 360
1024  close(183)                        = 0
1024  write(182, "\27\3\3\2\365\256\3029\302\327\213\322a\375F\251\335\275\353\377\265\376\202R\314j!\200\317\203k "..., 762) = 762

1 个答案:

答案 0 :(得分:0)

我要感谢每个人的帮助。问题出在某些插件上。

我修复了该问题,为wordpress实例创建了完全相同的目录(在使用新目录之前),并删除了两个插件(我关闭并打开了几乎所有插件,但仅删除了两个)。

这些技巧很有用,然后我用它来解决php config的一些问题。