我正在使用 Supervisord 运行 5 个 PHP 脚本实例.运行 5 个进程是最大化我的 PHP 脚本执行的处理的最佳数量。如果我运行超过 5 个或少于 5 个,我会得到更差的结果。
我已经用 xdebug 分析了 PHP 脚本本身和 webgrind .
我怀疑磁盘 I/O 是阻止我运行更多并行进程的原因,因为我的 CPU 和内存在运行 5 个进程时没有达到极限。我在 Amazon EC2 实例上有 4 个虚拟内核,Mysqld 和 Supervisord 在任何给定时间都没有使用超过 50% 的 CPU。
Linux Cent OS 机器上的一个配置文件磁盘 I/O 如何(这听起来像是罪魁祸首)?
我应该寻找哪些其他瓶颈?
--解决方案--
我无法找到任何简单的解决方案来为我提供非常深入的信息。不过,我不太确定我在寻找什么,所以对于这个问题和答案含糊不清,我深表歉意。
最佳答案
我会在您的脚本运行时查看 iostat -c -n 1
并查看最右侧的 %util 列中报告的内容。如果您的直觉是正确的,那么在您的进程运行时 %util 应该接近 100%。
此脚本是否执行任何通过网络获取数据的处理?这也可能是一个瓶颈。
如果不多了解脚本的作用,就很难多说了。每个进程在做什么?您如何确定 5 是最佳进程数?
关于php - 如何在 PHP 脚本中分析磁盘 I/O?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045980/