Php 不终止进程
Php doesn't kill process
我正在为 运行 最新版本的 wordpress 配置新服务器。一段时间后 运行 一切正常,所有请求开始 return 504 超时。我检查了 nginx 和 php 的所有日志,没有错误。 运行服务后php7.2状态
我发现了这种情况:
某些东西阻止了我的 php 进程,并且 php 没有终止进程。当所有进程都忙时,我的服务器停止。
我用这些程序配置了我的 Droplet:
- Ubuntu 18.04
- Php 7.2.10
- Mysql 5.7.24
- Nginx 1.14.0
我的 www.conf 配置了这些参数(如果我增加最大 children,服务器延迟更多停止)
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 10
我尝试使用默认配置 运行 此应用程序,ubuntu 16 使用 php 7.0,但在所有液滴中都出现相同的错误。只有这个wordpress实例有错误。
我post所有配置都在这里,但我不知道错误是否在其他方面,比如在应用程序上。我将它从其他服务器(ubuntu 14.04,php 5.6)移动,将所有文件复制到这个新的 Droplet。也许是某个插件或类似的东西,因为只有这个实例有错误(我将其他 6 个 wordpress 移动到具有相同配置的其他 droplets 并且没有发现错误)。
编辑 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, "56292732a5F15537562R4j!073k "..., 762) = 762
感谢大家对我的帮助。问题出在一些插件上。
我修复了它为 wordpress 实例创建了完全相同的目录(在我使用新目录之前)并删除了两个插件(我关闭并打开了几乎所有插件,但只删除了两个)。
这些提示很有用,然后我用它来解决 php 配置的一些问题。
我正在为 运行 最新版本的 wordpress 配置新服务器。一段时间后 运行 一切正常,所有请求开始 return 504 超时。我检查了 nginx 和 php 的所有日志,没有错误。 运行服务后php7.2状态
我发现了这种情况:
某些东西阻止了我的 php 进程,并且 php 没有终止进程。当所有进程都忙时,我的服务器停止。
我用这些程序配置了我的 Droplet:
- Ubuntu 18.04
- Php 7.2.10
- Mysql 5.7.24
- Nginx 1.14.0
我的 www.conf 配置了这些参数(如果我增加最大 children,服务器延迟更多停止)
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 10
我尝试使用默认配置 运行 此应用程序,ubuntu 16 使用 php 7.0,但在所有液滴中都出现相同的错误。只有这个wordpress实例有错误。
我post所有配置都在这里,但我不知道错误是否在其他方面,比如在应用程序上。我将它从其他服务器(ubuntu 14.04,php 5.6)移动,将所有文件复制到这个新的 Droplet。也许是某个插件或类似的东西,因为只有这个实例有错误(我将其他 6 个 wordpress 移动到具有相同配置的其他 droplets 并且没有发现错误)。
编辑 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, "56292732a5F15537562R4j!073k "..., 762) = 762
感谢大家对我的帮助。问题出在一些插件上。
我修复了它为 wordpress 实例创建了完全相同的目录(在我使用新目录之前)并删除了两个插件(我关闭并打开了几乎所有插件,但只删除了两个)。
这些提示很有用,然后我用它来解决 php 配置的一些问题。