溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么通過Linux命令測量磁盤活動

發(fā)布時間:2021-10-26 09:52:02 來源:億速云 閱讀:98 作者:小新 欄目:建站服務(wù)器

這篇文章主要為大家展示了“怎么通過Linux命令測量磁盤活動”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“怎么通過Linux命令測量磁盤活動”這篇文章吧。

其中兩個命令(iostat 和 ioping)可能必須添加到你的系統(tǒng)中,這兩個命令一樣要求你使用 sudo 特權(quán),所有這五個命令都提供了查看磁盤活動的有用方法。

這些命令中最簡單、最直觀的一個可能是 dstat 了。

dtstat

盡管 dstat 命令以字母 “d” 開頭,但它提供的統(tǒng)計信息遠遠不止磁盤活動。如果你只想查看磁盤活動,可以使用 -d 選項。如下所示,你將得到一個磁盤讀/寫測量值的連續(xù)列表,直到使用 CTRL-c 停止顯示為止。注意,在第一個報告信息之后,顯示中的每個后續(xù)行將在接下來的時間間隔內(nèi)報告磁盤活動,缺省值僅為一秒。

$ dstat -d
-dsk/total-
 read  writ
 949B   73k
  65k     0    < == first second
   0    24k    <== second second
   0    16k
   0    0 ^C

在 -d 選項后面包含一個數(shù)字將把間隔設(shè)置為該秒數(shù)。

$ dstat -d 10
-dsk/total-
 read  writ
 949B   73k
  65k   81M    < == first five seconds
   0    21k    <== second five second
   0  9011B ^C

請注意,報告的數(shù)據(jù)可能以許多不同的單位顯示——例如,M(Mb)、K(Kb)和 B(字節(jié))。

如果沒有選項,dstat 命令還將顯示許多其他信息——指示 CPU 如何使用時間、顯示網(wǎng)絡(luò)和分頁活動、報告中斷和上下文切換。

$ dstat
You did not select any stats, using -cdngy by default.
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw
  0   0 100   0   0| 949B   73k|   0     0 |   0     3B|  38    65
  0   0 100   0   0|   0     0 | 218B  932B|   0     0 |  53    68
  0   1  99   0   0|   0    16k|  64B  468B|   0     0 |  64    81 ^C

dstat 命令提供了關(guān)于整個 Linux 系統(tǒng)性能的有價值的見解,幾乎可以用它靈活而功能強大的命令來代替 vmstat、netstat、iostat 和 ifstat 等較舊的工具集合,該命令結(jié)合了這些舊工具的功能。要深入了解 dstat 命令可以提供的其它信息,請參閱這篇關(guān)于 dstat 命令的文章。

iostat

iostat 命令通過觀察設(shè)備活動的時間與其平均傳輸速率之間的關(guān)系,幫助監(jiān)視系統(tǒng)輸入/輸出設(shè)備的加載情況。它有時用于評估磁盤之間的活動平衡。

$ iostat
Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_       (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.01    0.03    0.05    0.00   99.85
Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00       1048          0
loop1             0.00         0.00         0.00        365          0
loop2             0.00         0.00         0.00       1056          0
loop3             0.00         0.01         0.00      16169          0
loop4             0.00         0.00         0.00        413          0
loop5             0.00         0.00         0.00       1184          0
loop6             0.00         0.00         0.00       1062          0
loop7             0.00         0.00         0.00       5261          0
sda               1.06         0.89        72.66    2837453  232735080
sdb               0.00         0.02         0.00      48669         40
loop8             0.00         0.00         0.00       1053          0
loop9             0.01         0.01         0.00      18949          0
loop10            0.00         0.00         0.00         56          0
loop11            0.00         0.00         0.00       7090          0
loop12            0.00         0.00         0.00       1160          0
loop13            0.00         0.00         0.00        108          0
loop14            0.00         0.00         0.00       3572          0
loop15            0.01         0.01         0.00      20026          0
loop16            0.00         0.00         0.00         24          0

當然,當你只想關(guān)注磁盤時,Linux 回環(huán)設(shè)備上提供的所有統(tǒng)計信息都會使結(jié)果顯得雜亂無章。不過,該命令也確實提供了 -p 選項,該選項使你可以僅查看磁盤——如以下命令所示。

$ iostat -p sda
Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.01    0.03    0.05    0.00   99.85
Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.06         0.89        72.54    2843737  232815784
sda1              1.04         0.88        72.54    2821733  232815784

請注意 tps 是指每秒的傳輸量。

你還可以讓 iostat 提供重復的報告。在下面的示例中,我們使用 -d 選項每五秒鐘進行一次測量。

$ iostat -p sda -d 5
Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.06         0.89        72.51    2843749  232834048
sda1              1.04         0.88        72.51    2821745  232834048
Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.80         0.00        11.20          0         56
sda1              0.80         0.00        11.20          0         56

如果你希望省略第一個(自啟動以來的統(tǒng)計信息)報告,請在命令中添加 -y。

$ iostat -p sda -d 5 -y
Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.80         0.00        11.20          0         56
sda1              0.80         0.00        11.20          0         56

接下來,我們看第二個磁盤驅(qū)動器。

$ iostat -p sdb
Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.01    0.03    0.05    0.00   99.85
Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb               0.00         0.02         0.00      48669         40
sdb2              0.00         0.00         0.00       4861         40
sdb1              0.00         0.01         0.00      35344          0

iotop

iotop 命令是類似 top 的實用程序,用于查看磁盤 I/O。它收集 Linux 內(nèi)核提供的 I/O 使用信息,以便你了解哪些進程在磁盤 I/O 方面的要求最高。在下面的示例中,循環(huán)時間被設(shè)置為 5 秒。顯示將自動更新,覆蓋前面的輸出。

$ sudo iotop -d 5
Total DISK READ:         0.00 B/s | Total DISK WRITE:      1585.31 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:      12.39 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
32492 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.12 % [kworker/u8:1-ev~_power_efficient]
  208 be/3 root        0.00 B/s 1585.31 B/s  0.00 %  0.11 % [jbd2/sda1-8]
    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]
    3 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_gp]
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_par_gp]
    8 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [mm_percpu_wq]

ioping

ioping 命令是一種完全不同的工具,但是它可以報告磁盤延遲——也就是磁盤響應請求需要多長時間,而這有助于診斷磁盤問題。

$ sudo ioping /dev/sda1
4 KiB < << /dev/sda1 (block device 111.8 GiB): request=1 time=960.2 us (warmup)
4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=2 time=841.5 us
4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=3 time=831.0 us
4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=4 time=1.17 ms
^C
--- /dev/sda1 (block device 111.8 GiB) ioping statistics ---
3 requests completed in 2.84 ms, 12 KiB read, 1.05 k iops, 4.12 MiB/s
generated 4 requests in 3.37 s, 16 KiB, 1 iops, 4.75 KiB/s
min/avg/max/mdev = 831.0 us / 947.9 us / 1.17 ms / 158.0 us

atop

atop 命令,像 top 一樣提供了大量有關(guān)系統(tǒng)性能的信息,包括有關(guān)磁盤活動的一些統(tǒng)計信息。

ATOP - butterfly      2018/12/26  17:24:19      37d3h23m------ 10ed
PRC | sys    0.03s | user   0.01s | #proc    179 | #zombie    0 | #exit      6 |
CPU | sys       1% | user      0% | irq       0% | idle    199% | wait      0% |
cpu | sys       1% | user      0% | irq       0% | idle     99% | cpu000 w  0% |
CPL | avg1    0.00 | avg5    0.00 | avg15   0.00 | csw      677 | intr     470 |
MEM | tot     5.8G | free  223.4M | cache   4.6G | buff  253.2M | slab  394.4M |
SWP | tot     2.0G | free    2.0G |              | vmcom   1.9G | vmlim   4.9G |
DSK |          sda | busy      0% | read       0 | write      7 | avio 1.14 ms |
NET | transport    | tcpi 4 | tcpo  stall      8 | udpi 1 | udpo 0swout   2255 |
NET | network      | ipi       10 | ipo 7 | ipfrw      0 | deliv      60.67 ms |
NET | enp0s25   0% | pcki      10 | pcko 8 | si    1 Kbps | so    3 Kbp0.73 ms |
  PID SYSCPU  USRCPU  VGROW   RGROW  ST EXC   THR  S CPUNR   CPU  CMD 1/1673e4 |
 3357  0.01s   0.00s   672K    824K  --   -     1  R     0    0%  atop
 3359  0.01s   0.00s     0K      0K  NE   0     0  E     -    0%3361  0.00s   0.01s     0K      0K  NE   0     0  E     -    0%3363  0.01s   0.00s     0K      0K  NE   0     0  E     -    0%31357  0.00s   0.00s     0K      0K  --   -     1  S     1    0%  bash
 3364  0.00s   0.00s  8032K    756K  N-   -     1  S     1    0%  sleep
 2931  0.00s   0.00s     0K      0K  --   -     1  I     1    0%  kworker/u8:2-e
 3356  0.00s   0.00s     0K      0K  -E   0     0  E     -    0%3360  0.00s   0.00s     0K      0K  NE   0     0  E     -    0%3362  0.00s   0.00s     0K      0K  NE   0     0  E     -    0%

如果你只想查看磁盤統(tǒng)計信息,則可以使用以下命令輕松進行管理:

$ atop | grep DSK
DSK |          sda | busy      0% | read  122901 | write 3318e3 | avio 0.67 ms |
DSK |          sdb | busy      0% | read    1168 | write    103 | avio 0.73 ms |
DSK |          sda | busy      2% | read       0 | write     92 | avio 2.39 ms |
DSK |          sda | busy      2% | read       0 | write     94 | avio 2.47 ms |
DSK |          sda | busy      2% | read       0 | write     99 | avio 2.26 ms |
DSK |          sda | busy      2% | read       0 | write     94 | avio 2.43 ms |
DSK |          sda | busy      2% | read       0 | write     94 | avio 2.43 ms |
DSK |          sda | busy      2% | read       0 | write     92 | avio 2.43 ms |
^C

了解磁盤 I/O

Linux 提供了足夠的命令,可以讓你很好地了解磁盤的工作強度,并幫助你關(guān)注潛在的問題或減緩。希望這些命令中的一個可以告訴你何時需要質(zhì)疑磁盤性能。偶爾使用這些命令將有助于確保當你需要檢查磁盤,特別是忙碌或緩慢的磁盤時可以顯而易見地發(fā)現(xiàn)它們。

以上是“怎么通過Linux命令測量磁盤活動”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI