我有一台运行less量服务的机器,但是我不认为他们有时会对这台服务器上的大量磁盘访问负责(大量的磁头移动,我可以听到很长时间的几乎没有移动)
如果再次出现这种情况,我怎样才能知道哪个进程在硬盘上做了什么?
我正在考虑使用linux命令“lsof”,但是它的输出和选项都是过度的,所以我什么都看不到。
你能指导我吗?
如果你能certificate这种情况下lsof的一些有用的select将是很好的。 谢谢。
编辑谢谢你的所有答案。 这比我预期的要多得多,我提出了所有答案(直到今天)
尝试看“ iotop ”。 它会给你你所需要的,每个进程的IO使用率,就像显示一样。 附带最现代的Linux发行版
通常当你有一个服务/应用程序没有执行大量磁盘I / O的系统时,你会注意到很多的硬盘驱动器活动,你会发现系统交换了很多。
这篇文章对这是如何工作的很好的解释:
使用vmstat监视虚拟内存
我也同意top公用事业公司的build议。 但是,如果您查看您的cron作业,则可能会更快地find问题的根源。 检查/etc/cron.*的内容,看是否有任何运行进程的cron作业会导致大量的磁盘I / O。 它可能是像updatedb更新定位数据库一样简单。
如果服务器允许用户login,则还应该检查用户crontabs。 它们通常位于/var/spool/cron/tabs 。
我有一台运行less量服务的机器,但是我不相信他们有责任在这台服务器上访问大量磁盘
这是否每天发生一次? 如果是,则可能是检查存储库以进行更新的系统,或者如果以此方式configuration安全修补程序,则会自动安装。
您可以更改检查之间的时间间隔,并在Synaptic中configuration自动更新
除非你想了解哪些文件正在被访问的细节,我相信你也可以使用top来获取这些信息。 我使用htop ( top封装)来监视I / O使用情况,输出按不同的I / O域进行sorting。 它提供了以下列: RCHAR, WCHAR, SYSCR, SYSCW, IO_READ_RATE, IO_WRITE_RATE, IO_RATE 。 如果这个,如果你需要什么,看看man top 。
观看top一段时间。 IO绑定程序通常卡在D状态。 因此,通过cpusorting你的最高输出,只要注意哪一个进程将会在D状态下有大量的时间。
所提到的工具对于实时监控来说是非常好的 – 对于一个新的职位来说,这是一个很好的问题:历史上可以使用的是什么 – 用例:
我的盒子在凌晨1点显示出IO尖峰
你怎么知道它来自哪里? :)