高延迟(?)用户的长PHP执行

Mii*_*kaH 7 php apache

我最近将PHP执行时间添加到访问者日志中,以发现代码或数据库中可能存在的问题.时间测量为脚本开头和结尾之间的microtime()差异.

平均执行时间(包括我自己对站点调试版本的测试)为2-15ms.然后我随机看一些用户执行+ 300ms.这些可能是由负载峰值,未缓存的数据库查询或文件系统访问引起的.

我无法理解的是,每次都会出现5-30秒(!)执行时间的用户.基于我的测试,它们出现在看似随机的页面上,并且在那些时间访问日志上没有任何请求峰值,也没有任何代码或数据库查询可能导致这种缓慢的性能.其中90%的请求来自中国,似乎是某种爬虫或机器人.

那么:延迟会影响PHP脚本的执行时间吗?将先前的缓冲区发送给用户时,PHP执行是否暂停?

我发现这个看似相似的其他线程,但没有答案:PHP的执行时间根据互联网/连接延迟而变化?

编辑:
我最终将PHP output_buffering从4k增加到128k字节.现在,典型的执行时间降至2-6毫秒,并且没有更多随机可笑的长时间.

Vin*_*nce 1

我认为延迟会影响 PHP 执行时间,具体取决于服务器配置,特别是output_buffering 和implicit_flush

此外,有一些类似的函数gethostsbyaddr会减慢 PHP 脚本的速度。

也许您可以使用 XDebug 生成执行跟踪并查看脚本执行的“时间线”。