用于文件访问的类似 sar 的实用程序

用于文件访问的类似 sar 的实用程序

我正在排除昨晚 Linux 服务器性能下降的故障。我在服务器上安装了 sysstat,它每 2 分钟轮询一次。在事件发生时,有大量磁盘活动(使用 sar -b 和 sar -d):

05:46:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
05:46:01 PM    246.26      1.85    244.41    141.65  10524.53

05:58:01 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
05:46:01 PM    dev8-0    246.26    141.65  10524.53     43.31      0.09      0.38      0.16      3.92

如您所见,其中大部分是写访问。我想知道的是此时正在写入哪些文件。sar 似乎没有保留这些数据,所以我想知道是否有其他实用程序可以监视此类活动。我怀疑是否有任何方法可以获得任何历史记录,但如果我现在可以安装某些东西,它可能会对下一次事件有所帮助。

答案1

iotop- 它将帮助您识别进程,然后您可以使用lsof -c <process>它列出进程打开的所有打开的文件描述符。或者,您可以使用strace进程来查看所有当前低级系统调用。

这些实用程序不是用于监控,而是用于实时调查。如果您还需要查看一些历史值,则需要实施适当的监控。

个人建议:

Sysdig(云)-https://github.com/draios/sysdig/wiki/Sysdig-Examples#disk

  • 查看磁盘带宽使用率最高的进程

    sysdig -c topprocs_file
    
  • 列出使用大量文件的进程

    sysdig -c fdcount_by proc.name "fd.type=file"
    
  • 查看读取+写入字节数最多的文件

    sysdig -c topfiles_bytes
    
  • 打印 apache 读取或写入的顶级文件

    sysdig -c topfiles_bytes proc.name=httpd
    

相关内容