我正在使用 Nginx + PHP5-FPM,通过端口 80 加载的所有 PHP 文件都非常慢 - 甚至一个简单的 phpinfo 文件都需要几分钟才能加载。
通过 shell 执行 php -i 速度非常快,而且服务器本身非常强大,负载很低。
我也尝试过 Apache 和 Litespeed,结果与 Nginx 相同。纯 HTML 文件也非常快。
自断电和硬重启以来,这种情况一直发生。
有谁知道为什么该服务器处理 PHP 文件的速度如此之慢?
答案1
这个不太容易诊断,但如果您没有对库存 php.ini 文件进行任何更改,最好的方法就是对其中一个子 php fpm 进程运行 strace。
首先将 FPM 子项的最大/最小/起始数量减少到 1,然后重新启动 FPM。
获取 FPM 子进程的 PID 并strace -p PID
以 root 身份运行。
然后使用浏览器访问缓慢的 PHP 页面并观察 strace 输出以查看进程挂起的位置。它会为您提供 PHP 进行的所有系统调用,您可以查看它是否做了一些愚蠢的事情。
答案2
这是一个长远的目标,但你可能想安装网磨看看执行挂起的位置,它至少可以给你一个暗示至于问题的根源,鉴于它不是立即显现出来的。