#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
配置文件启用统计收集器。要查看设备当前的利用率,可以使用sysstat软件包中的
iostat
命令: $ 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
munin和cacti是可以在趋势图中显示磁盘使用率的其他选项。
评论
Munin或Cacti是我想要的。感谢您的指导。
– camomileCase
2012年11月9日4:00
请注意,%iowait仅显示内核仅等待IO的时间。在100%CPU限制的服务器上,无论它正在执行多少IO,它都将为零。
–Jürgen Strobel
2014年4月28日在14:19
iostat -x dm-0 | grep设备; iostat -xd 2 -y dm-0 | grep dm-0
–胡安·麦地那
18年4月17日在19:02
#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才能工作。
评论
这不仅是Linux,还需要更新(或修补)的内核。
–jordanm
2012年11月8日18:45
这些看起来很适合发现当前发生的情况,但是我正在寻找更大的图像监控。
– camomileCase
2012年11月9日下午4:01
@camomileCase-您未在问题中指定...
– tink
16年6月17日在10:16
#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 楼
仅从计算机上的文件(假设使用最新内核),您就可以询问/sys/block/sda/stat
或/proc/diskstats
。但是,它将需要一些翻译。但这对快速而肮脏的检查很好。 评论
/ sys / block / sda / stat记录在https://www.kernel.org/doc/Documentation/block/stat.txt
–ignis
2013年9月14日21:19在
/ proc / diskstats记录在kernel.org/doc/Documentation/iostats.txt中
– RikardSöderström
17年1月13日,0:01
此答案的最大优点是无需安装任何工具。就在那儿。 (可能是:-)
– Ben Aveling
17年2月3日,下午5:36
例如echo“读取io合并扇区滴答声,写入io合并扇区滴答声在飞行中ioticks timeinqueu”; cat / sys / block / vda / vda1 / stat; sleep 10;猫/ sys / block / vda / vda1 / stat
– Ben Aveling
17年2月6日在0:07
#5 楼
另一个选择是使用:sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
该程序将告诉您自iotop启动以来,已向磁盘写入和从磁盘读取的进程数量。
评论
我听到有什么东西正在访问磁盘,但是累积的输出却非常缓慢地增长,有时甚至在一秒钟之内都没有。
–迈克尔
18/12/11在1:13
如果您听到该磁盘,则可能是旧的和/或速度慢。现代硬盘驱动器通常非常安静。它发出什么样的声音?使用smartctl查看磁盘是否健康。
–rudolfbyker
19年6月21日在7:08
#6 楼
监视磁盘Io可以通过以下多种工具来完成。Iostat
SAR
也一些重要的操作系统概念对于理解它们非常必要。.阅读Linux IO完整教程
评论
iozone用于测试,而不是监视:“ Iozone是文件系统基准测试工具。该基准测试可以生成并测量各种文件操作。”
–安德鲁·比尔斯(Andrew Beals)
16年2月16日在22:28
#7 楼
快速查看负载来源的另一个好工具是atop
它可以向您显示所有资源(CPU,内存/交换,网络和磁盘I / O)的概览,也可以向下钻取单一资源并按消耗的数量对流程进行排序。
#8 楼
为什么不尝试nmon。它可以处理磁盘和网络。最初用于AIX,但现在已经移植到Linux了几年。#9 楼
如果要长期查看性能,最好的方法是使用Centreon,它是Nagios上强大的工具。 Centreon使您能够通过绘制资源性能和其他许多事物的图表进行监视。
评论
还有什么其他的东西?有截图吗?请扩大您的答案。
– Konrad Gajewski
19年6月24日在18:06
评论
serverfault.com/questions/9428/…|| superuser.com/questions/115358/…