Answers:
对于磁盘I / O趋势分析,有一些选择。我个人最喜欢的是的sar
命令sysstat
。默认情况下,它给出如下输出:
09:25:01 AM CPU %user %nice %system %iowait %steal %idle
09:35:01 AM all 0.11 0.00 0.01 0.00 0.00 99.88
09:45:01 AM all 0.12 0.00 0.01 0.00 0.00 99.86
09:55:01 AM all 0.09 0.00 0.01 0.00 0.00 99.90
10:05:01 AM all 0.10 0.00 0.01 0.02 0.01 99.86
Average: all 0.19 0.00 0.02 0.00 0.01 99.78
这%iowait
是等待I / O所花费的时间。使用Debian软件包,您必须/etc/default/sysstat
在安装软件包后通过配置文件启用统计收集器。
要查看按设备划分的当前利用率iostat
,还可以从sysstat软件包中使用命令:
$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode) 11/08/2012 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.84 0.00 0.08 1.22 0.07 97.80
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
xvda 0.09 1.02 2.58 0.49 112.79 12.11 40.74 0.15 48.56 3.88 1.19
xvdb 1.39 0.43 4.03 1.82 43.33 18.43 10.56 0.66 112.73 1.93 1.13
我喜欢dstat
。它可以显示每个磁盘甚至md设备(RAID)的总数和统计信息,还可以使用颜色进行更好的概述:
$ dstat -tdD total,sda,sdb,sdc,md1 60
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
time | read writ: read writ: read writ: read writ: read writ
08-11 22:08:17|3549k 277k: 144k 28k: 851k 62k: 852k 60k: 25k 82k
08-11 22:09:17| 60k 258k:1775B 15k: 13k 63k: 15k 60k: 68B 74k
08-11 22:10:17| 176k 499k: 0 14k: 41k 122k: 41k 125k: 273B 157k
08-11 22:11:17| 42k 230k: 0 14k:9830B 54k: 14k 51k: 0 70k
08-11 22:11:52| 28k 132k: 0 5032B:5266B 33k:9479B 28k: 0 37k
-t
时间戳记-d
用于磁盘统计-D
指定要报告的确切设备60
平均超过60秒。显示屏每秒更新一次,但是每60秒仅更新一次。
在此示例中未使用,但是-c
可以报告等待IO百分比,在大多数情况下,该百分比与CPU等待磁盘中的数据有关。
它可用于大多数Linux发行版,但有时需要从存储库中安装。
只需从计算机上的文件(假设使用最新内核),您就可以询问/sys/block/sda/stat
或/proc/diskstats
。但是,它将需要一些翻译。但这对快速而肮脏的检查很好。
/sys/block/sda/stat
记录在https://www.kernel.org/doc/Documentation/block/stat.txt
/proc/diskstats
记录在kernel.org/doc/Documentation/iostats.txt中
另一种选择是使用: sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
该程序将告诉您自iotop启动以来,一个进程已写入磁盘和从磁盘读取了多少数据。
smartctl
,以查看磁盘是否是健康的。
快速了解负载来源的另一个好工具是 atop
它可以向您显示所有资源(CPU,内存/交换,网络和磁盘I / O)的概述,或者您可以向下钻取到单个资源并按消耗的资源对进程进行排序。