PHP-cgi 进程有好几个,如何查看它们目前在做什么(至少一个)?例如,哪个文件。或 GET 请求。有必要评估系统的哪些模块正在执行。
有工具Xdebug
和XHprof
标志,但有其他选择吗?某种 Linux 方式来查看打开了哪些文件。
做了什么:
得到进程的PID
ps aux | grep php
有一个工作目录 - 服务器上有几个虚拟主机,已经有东西了
ls -ld /proc/16945/cwd
PHP-cgi 进程有好几个,如何查看它们目前在做什么(至少一个)?例如,哪个文件。或 GET 请求。有必要评估系统的哪些模块正在执行。
有工具Xdebug
和XHprof
标志,但有其他选择吗?某种 Linux 方式来查看打开了哪些文件。
做了什么:
得到进程的PID
ps aux | grep php
有一个工作目录 - 服务器上有几个虚拟主机,已经有东西了
ls -ld /proc/16945/cwd
这里有两点。
1)找出当前正在执行的php脚本的代码(包含)-您需要访问执行操作码的数组,这是PHP的内部逻辑,这里很难拿出任何通用的linux工具
2) 一般来说,脚本的生命周期非常短(例如,为特定函数计算一组操作码甚至更少)。无论您多久轮询一次当前状态,这将是非常泄漏的统计信息。
所以“观察者”方法在这里不是很适用,而“监听者”方法更适合,当你的统计收集器将由 PHP 本身通知必要的事件时。这些只是相同的 Xdebug、XHprof 等。