Top和httpd-揭开实际运行的神秘面纱
时间:2020-03-06 14:51:15 来源:igfitidea点击:
我经常使用" top"命令来查看占用资源的资源。通常,它会提供一长串Apache httpd进程,这不是很有用。有什么办法可以看到类似的列表,但是可以看到哪些PHP脚本等那些httpd进程实际上在运行?
解决方案
php脚本的执行速度如此之快,top不会向我们显示太多。否则它会很快压缩。大多数Web请求都非常快。
我认为我们最好的选择是拥有某种类型的实时日志处理器,该处理器会密切注意访问日志并为我们提供平均运行时间,内存使用情况以及类似信息的统计信息。
如果我们担心长时间运行的进程(即,需要一两秒以上才能执行的请求),则可以使用Apache的mod_status了解它们。请参阅文档和输出示例(来自www.apache.org)。这不是PHP特有的,但适用于apache进程中运行的任何东西。
请注意,www.apache.org状态输出可能是公开提供的,仅用于演示目的-我们希望限制对自己的访问,以便并非所有人都能看到它。
我们可以使PHP页面自行计时,并将其路径和执行时间写入文件或者数据库。请注意,这会降低我们监视时的速度,但这将是一种很好的测量方法。
虽然那不是交互式的。我们可以每天或者每周从中获得结果,但是很难在几分钟或者几小时内看到有意义的结果。
有一个名为apachetop的基于ncurses的顶级实用程序,可为Apache提供实时日志分析。不幸的是,该项目已被放弃,并且代码遇到了一些错误,但是实际上它非常有用。只是不要以root用户身份运行它,而是以任何有权访问Web服务器日志文件的用户身份运行它,那么我们应该一切都很好。