我正在配置一个新服务器来运行最新版本的WordPress。经过一段时间的运行,一切请求开始返回504超时。我检查了nginx和php的所有日志,没有错误。运行后服务PHP7.2状态
我发现这种情况:
有东西阻塞了我的PHP进程,而PHP并没有杀死这个进程。当所有进程都忙时,我的服务器将停止。
我用这些程序配置了我的Droplet:
Ubuntu 18.04
PHP7.2.10
MySQL 5.7.24
NGNX1.1.0
我的www.conf配置了这些参数(如果我增加max children,服务器会延迟更多以停止)
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 10
我试着用默认配置运行这个应用程序,用php 7.0运行Ubuntu16,但在所有水滴中都有相同的错误。只有这个wordpress实例有错误。
我在这里发布了所有配置,但我不知道错误是否存在于其他方面,比如应用程序上。我把它从其他服务器(Ubuntu14.04,php 5.6)移到了这个新的Droplet上。可能是某个插件或类似的东西,因为只有这个实例有错误(我把其他6个WordPress移到了其他具有相同配置的Drop中,没有发现错误)。
编辑1->用strace调试nginx
我正在用strace(德文建议)调试我的过程。结果是:
几乎所有结果:
1021 epoll_wait(10,
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,
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