我想在debian linux服务器上进行一些常规的磁盘io监视。我应该了解哪些有关监视磁盘io的工具,以便查看磁盘的性能是否在一天内的某个时间达到极限或峰值?

评论

serverfault.com/questions/9428/…|| superuser.com/questions/115358/…

#1 楼

对于磁盘I / O趋势分析,有一些选择。我个人最喜欢的是来自sarsysstat命令。默认情况下,它的输出如下:

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