php - 如何在 PHP 脚本中分析磁盘 I/O?

标签 php linux profiling

我正在使用 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/

相关文章:

php - PRE 标记到纯文本

javascript - 尝试在函数中显示/隐藏时,foreach 循环中的 div #id 仅选择最后一个变量

c++ - 内部编译器错误 : Segmentation fault On Raspberry Pi

c - gcc -Ofast -pg 的 gprof 结果错误

ios - swift_dynamiccast 在 iOS 中处理过多并影响性能

HTML 文件中的 javascript 调试

php - 如何在 PHP 中为每次出现的字符串拆分数组

php - 连接表中的 INSERT 语句

linux - 为什么tomcat6在/var/lib/和/usr/share/都有文件夹?

linux - 为什么 pstack 比仅附加、保存堆栈和退出的 gdb 快得多?