探索系统中大量使用的文件

Ind*_*dex 2 ubuntu performance file-io load

我正在使用ubuntu Ubuntu 14.04.1 LTS

atopsar -d 30 - 表明系统中的一个硬盘驱动器(sda)被大量使用.这个硬盘只提供mysql数据库.最常用的DB,通过符号链接重定位到另一个硬盘驱动器(sdb,sdd).现在atopsar显示几乎相同的负载sda和低于5%的负载到其他HDD.

有没有办法知道哪些文件在HDD上大量使用?

是不是mysql InnoDB日志文件(ib_logfile)碎片化了?因此atopsar显示出如此大的负荷(50%-70%).在那种情况下可以做些什么?

有一些输出来自atopsar -d 30:

08:52:47  disk           busy read/s KB/read  writ/s KB/writ avque avserv _dsk_
08:53:17  sda             63%    0.0     0.0    50.2    14.6   1.1  12.57 ms
          sdb              5%    0.0     0.0     9.4    19.8   4.2   5.81 ms
          sdd              2%    0.0     0.0     3.7    18.9   1.4   5.82 ms
08:53:47  sda             60%    0.0    16.0    48.1    15.7   1.0  12.55 ms
          sdb              5%    0.0     0.0     6.9    17.5   4.6   7.35 ms
          sdd              2%    0.0     0.0     4.7    24.9   1.4   4.06 ms
08:54:17  sda             38%    0.5    16.0    30.6    15.6   1.2  12.25 ms
          sdb              3%    0.0     0.0     5.6    18.3   3.3   5.50 ms
          sdd              2%    0.0     0.0     3.3    19.2   1.1   4.86 ms
08:54:47  sda             53%    0.0     0.0    42.5    16.5   1.1  12.37 ms
          sdb              6%    0.0     0.0     8.7    21.0   5.8   6.37 ms
          sdd              2%    0.0     0.0     3.1    23.1   1.3   5.68 ms
08:55:17  sda             51%    0.0     4.0    42.7    16.9   1.1  11.94 ms
          sdb              5%    0.0     0.0     9.4    20.5   5.0   5.51 ms
          sdd              1%    0.0     0.0     1.5    17.6   1.1   7.73 ms
08:55:47  sda             52%    0.0     0.0    40.6    14.5   1.0  12.85 ms
          sdb              5%    0.0     0.0     6.8    19.5   5.4   6.66 ms
          sdd              2%    0.0     0.0     4.3    31.3   1.3   4.78 ms
Run Code Online (Sandbox Code Playgroud)

osg*_*sgx 6

有一个sysdig工具可以让您看到系统范围的活动,就像strace单个过程一样:http://www.sysdig.org/

有磁盘使用信息的示例:https://github.com/draios/sysdig/wiki/Sysdig%20Examples#disk-io

请参阅磁盘带宽使用情况方面的最佳流程

sysdig -c topprocs_file
Run Code Online (Sandbox Code Playgroud)

根据读取和写入字节查看顶部文件

sysdig -c topfiles_bytes
Run Code Online (Sandbox Code Playgroud)

打印apache已读取或写入的顶级文件

sysdig -c topfiles_bytes proc.name=httpd
Run Code Online (Sandbox Code Playgroud)

根据R + W磁盘活动查看顶级目录

sysdig -c fdbytes_by fd.directory "fd.type=file"
Run Code Online (Sandbox Code Playgroud)

请参阅/ tmp目录中的R + W磁盘活动的顶级文件sysdig -c fdbytes_by fd.filename"fd.directory =/tmp /"

观察名为'passwd'的所有文件的I/O活动

sysdig -A -c echo_fds "fd.filename=passwd"
Run Code Online (Sandbox Code Playgroud)

Sysdig是现代便捷的工具.对于较旧的Linux,可以使用SystemTap获取类似信息:http://lukas.zapletalovi.com/2014/05/systemtap-as-a-system-wide-strace-tool.html

PS感谢habrahabr.ru与此帖关于Sysdig http://habrahabr.ru/company/selectel/blog/222839/

PPS布伦丹·格雷格D.创造了这个图片"的许多工具快速浏览......"他的Linux性能页面:

Brendan D. Gregg关于linux性能和跟踪