Apache:磁盘读取负载高,无请求

Apache:磁盘读取负载高,无请求

在 Ubuntu VM 上,iotop 向我显示一些“apache2 -k start”进程正在生成总磁盘即使没有记录任何请求,负载也始终在 4 M/s 和 7 M/s 之间。

lsof 向我展示了 www-data 使用的大约 5000 个常规文件。我怎样才能确定是什么原因导致了如此多的磁盘 IO,而根本不应该有任何磁盘 IO?

答案1

高 I/O 的迹象可能需要跟踪工具来深入了解该 I/O 的详细信息;strace是执行此操作的常见方法:

strace -e trace=file -ff -o output -y -p $some_httpd_pid_here
  • -e trace=file跟踪文件相关操作(还有其他方便的说明符,请参阅详细手册),但不会显示read可能需要确定正在读取哪些文件描述符的调用;为此-e trace=open,read,或者只是跟踪所有内容,然后 grep 输出......
  • -ff跟随分叉,如果正在生成 CGI 等,或者如果您在httpd主进程启动时跟踪主进程,那么这很好。
  • -o output与文件交互-ff并生成供稍后查看的文件outputoutput.*
  • -y不能移植到旧版本,strace但确实省去了找出文件描述符号 42 或任何引用者的麻烦。

strace也可能非常慢;另请参阅 LinuxsysdigSystemTap有关跟踪事物或以其他方式调试内核正在执行的操作的替代方法...)

相关内容