我想在 debian Linux 服务器上进行一些常规磁盘 io 监控。我应该了解哪些有关监视磁盘 io 的工具,以便我可以查看磁盘性能是否已达到极限或在一天中的某个时间出现峰值?
答案1
对于磁盘 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
答案2
看一下iotop
:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init splash
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H]
6 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [mm_percpu_wq]
7 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched]
或者iodump
,如果这更符合你的思维方式。
注意:这至少需要内核2.6.20上班。
答案3
我喜欢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 发行版,但有时需要从存储库安装。
答案4
另一种选择是使用:sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
该程序将告诉您自 iotop 启动以来进程已写入磁盘和从磁盘读取的数据量。