Apache-Httpd

Apache:高磁碟讀取負載,沒有請求

  • July 26, 2017

在 Ubuntu VM 上,iotop 向我展示了一些“apache2 -k start”程序正在產生持續在 4 M/s 和 7 M/s 之間的總磁碟讀取負載,即使沒有記錄請求也是如此。

lsof 向我展示了 www-data 使用的大約 5000 個正常文件。我怎樣才能確定是什麼導致瞭如此多的磁碟 IO 而根本不應該有呢?

高 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有關跟踪事物或以其他方式調試核心正在執行的操作的替代方法…)

引用自:https://unix.stackexchange.com/questions/381791