jor*_*anm 278
对于磁盘 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
Run Code Online (Sandbox Code Playgroud)
这%iowait是等待 I/O 所花费的时间。使用 Debian 软件包,您必须/etc/default/sysstat在软件包安装后通过配置文件启用统计收集器。
要查看按设备划分的当前利用率,您也可以使用iostatsysstat 包中的命令:
$ 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
Run Code Online (Sandbox Code Playgroud)
可以在趋势图中显示磁盘使用情况的其他一些选项是munin和cacti。
tin*_*ink 130
看看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]
Run Code Online (Sandbox Code Playgroud)
或者iodump,如果这更符合您的思维方式。
注意:这至少需要内核 2.6.20才能工作。
jip*_*pie 113
我喜欢dstat。它可以显示每个磁盘甚至 md-devices (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
Run Code Online (Sandbox Code Playgroud)
-t 对于时间戳-d 用于磁盘统计-D 指定要报告的确切设备60平均超过 60 秒。显示每秒钟更新一次,但每 60 秒只会开始一次新行。
本例中未使用,但-c可以报告等待 IO 百分比,这在大多数情况下与 CPU 等待来自磁盘的数据有关。
它可用于大多数 Linux 发行版,但有时需要从存储库安装。
cha*_*dge 61
仅从您计算机上的文件(假设使用最新内核),您可以询问/sys/block/sda/stat或/proc/diskstats. 然而,它需要一些翻译。但是对于快速而肮脏的检查来说很好。
lan*_*oxx 50
另一种选择是使用: sudo iotop -aoP
-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads
Run Code Online (Sandbox Code Playgroud)
该程序将告诉您自 iotop 启动以来进程已写入磁盘和从磁盘读取的数量。
Bra*_*ram 10
我是它的作者diskgraph,它是一个命令行工具,可以在终端中绘制磁盘 IO。您可以选择哪个磁盘作为命令行上的参数,例如sda或nvme0n1。
$ ./diskgraph nvme0n1
Run Code Online (Sandbox Code Playgroud)
红色:写入带宽
绿色:读取带宽
橙色:正在进行的 IO 操作数。
请注意,该实用程序依赖于 Linux 5 中引入的功能。换句话说,它不适用于 Linux 4 或更早版本。
小智 9
监控磁盘 Io 可以通过多种工具完成,如下所示。
还有一些重要的操作系统概念对于理解它们是非常必要的..阅读Linux IO 完整教程
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           820032 次  |  
        
|   最近记录:  |