所以我的服务器在安装多个 Wordpress 的压力下苦苦挣扎。缓存相对较好(我计划改进缓存),但我很快就发现磁盘 IO 非常高。
我以前经常iotop
看到磁盘上主要是 PHP 发出的警报,但我真的很想知道哪些文件。我觉得如果我知道这一点,我可能就能发现其他问题或找到可以扩大的瓶颈(将东西移动到内存磁盘等)。
因此,我正在寻找一个命令,它可以为我提供打开的文件列表,这些文件按命令开始以来的 IO 进行排序。或者在固定时间段内(例如 60 秒)运行的命令。
笔记:我寻找的不仅仅是lsof
——我需要按总 IO 吞吐量排序的输出。
答案1
尝试inotifywatch。
从手册页中:
% inotifywatch -v -e access -e modify -t 60 -r ~/.beagle
Establishing watches...
Setting up watch(es) on /home/rohan/.beagle
OK, /home/rohan/.beagle is now being watched.
Total of 302 watches.
Finished establishing watches, now collecting statistics.
Will listen for events for 60 seconds.
total access modify filename
1436 1074 362 /home/rohan/.beagle/Indexes/FileSystemIndex/PrimaryIndex/
1323 1053 270 /home/rohan/.beagle/Indexes/FileSystemIndex/SecondaryIndex/
303 116 187 /home/rohan/.beagle/Indexes/KMailIndex/PrimaryIndex/
261 74 187 /home/rohan/.beagle/TextCache/
206 0 206 /home/rohan/.beagle/Log/
42 0 42 /home/rohan/.beagle/Indexes/FileSystemIndex/Locks/
18 6 12 /home/rohan/.beagle/Indexes/FileSystemIndex/
12 0 12 /home/rohan/.beagle/Indexes/KMailIndex/Locks/
3 0 3 /home/rohan/.beagle/TextCache/54/
3 0 3 /home/rohan/.beagle/TextCache/bc/
3 0 3 /home/rohan/.beagle/TextCache/20/
3 0 3 /home/rohan/.beagle/TextCache/62/
2 2 0 /home/rohan/.beagle/Indexes/KMailIndex/SecondaryIndex/