如何通過Linux 命令測量磁碟活動
Linux 發行版提供了幾個度量磁碟活動的有用 命令。讓我們瞭解一下其中的幾個。Linux 系統提供了一套方便的 命令,幫助你檢視磁碟有多忙,而不僅僅是磁碟有多滿。在本文中,我們將研究五個非常有用的命令,用於檢視磁碟活動。 |
其中兩個命令(iostat 和 ioping)可能必須新增到你的系統中,這兩個命令一樣要求你使用 sudo 特權,所有這五個命令都提供了檢視磁碟活動的有用方法。
這些命令中最簡單、最直觀的一個可能是 dstat 了。
儘管 dstat 命令以字母 “d” 開頭,但它提供的統計資訊遠遠不止磁碟活動。如果你只想檢視磁碟活動,可以使用 -d 選項。如下所示,你將得到一個磁碟讀/寫測量值的連續列表,直到使用 CTRL-c 停止顯示為止。注意,在第一個報告資訊之後,顯示中的每個後續行將在接下來的時間間隔內報告磁碟活動,預設值僅為一秒。
$ dstat -d -dsk/total- read writ 949B 73k 65k 0 < == first second 0 24k <== second second 0 16k 0 0 ^C
在 -d 選項後面包含一個數字將把間隔設定為該秒數。
$ dstat -d 10 -dsk/total- read writ 949B 73k 65k 81M < == first five seconds 0 21k <== second five second 0 9011B ^C
請注意,報告的資料可能以許多不同的單位顯示——例如,M(Mb)、K(Kb)和 B(位元組)。
如果沒有選項,dstat 命令還將顯示許多其他資訊——指示 CPU 如何使用時間、顯示網路和分頁活動、報告中斷和上下文切換。
$ 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 命令提供了關於整個 Linux 系統效能的有價值的見解,幾乎可以用它靈活而功能強大的命令來代替 vmstat、netstat、iostat 和 ifstat 等較舊的工具集合,該命令結合了這些舊工具的功能。要深入瞭解 dstat 命令可以提供的其它資訊,請參閱這篇關於 dstat 命令的文章。
iostat 命令通過觀察裝置活動的時間與其平均傳輸速率之間的關係,幫助監視系統輸入/輸出裝置的載入情況。它有時用於評估磁碟之間的活動平衡。
$ 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
當然,當你只想關注磁碟時,Linux 迴環裝置上提供的所有統計資訊都會使結果顯得雜亂無章。不過,該命令也確實提供了 -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
如果你希望省略第一個(自啟動以來的統計資訊)報告,請在命令中新增 -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
接下來,我們看第二個磁碟驅動器。
$ 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 命令是類似 top 的實用程式,用於檢視磁碟 I/O。它收集 Linux 核心提供的 I/O 使用資訊,以便你瞭解哪些程式在磁碟 I/O 方面的要求最高。在下面的示例中,迴圈時間被設定為 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 命令是一種完全不同的工具,但是它可以報告磁碟延遲——也就是磁碟響應請求需要多長時間,而這有助於診斷磁碟問題。
$ 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 命令,像 top 一樣提供了大量有關係統效能的資訊,包括有關磁碟活動的一些統計資訊。
ATOP - butterfly 2018/12/26 17:24:19 37d3h13m------ 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%
如果你只想檢視磁碟統計資訊,則可以使用以下命令輕鬆進行管理:
$ 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
Linux 提供了足夠的命令,可以讓你很好地瞭解磁碟的工作強度,並幫助你關注潛在的問題或減緩。希望這些命令中的一個可以告訴你何時需要質疑磁碟效能。偶爾使用這些命令將有助於確保當你需要檢查磁碟,特別是忙碌或緩慢的磁碟時可以顯而易見地發現它們。
原文地址: https://www.linuxprobe.com/text-linux-ioping.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2659294/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用於測量磁碟活動的 Linux 命令Linux
- Linux下如何通過命令連線wifiLinuxWiFi
- 如何通過C#操作Access,本人親測通過C#
- 如何通過 SSH 在遠端 Linux 系統上執行命令Linux
- 如何監測 Linux 的磁碟 I/O 效能Linux
- linux磁碟管理命令--ddLinux
- Linux 通過命令列解析JSON字串Linux命令列JSON字串
- 在 Linux 中如何使用 iotop 和 iostat 監控磁碟 I/O 活動?LinuxiOS
- Linux下如何測試磁碟I/O: ( hdparm -t)Linux
- 通過RFT命令列執行測試指令碼命令列指令碼
- linux磁碟管理命令--fdformat(轉)LinuxORM
- 通過FTP訪問ASM磁碟組FTPASM
- 【Linux】fio測試磁碟Linux
- 通過HTML5 Visibility API檢測頁面活動狀態HTMLAPI
- Go工程管理 18 | 質量保證:通過測試保證質量Go
- linux磁碟分割槽基本命令Linux
- 通過持續Ping來檢測網路質量
- 通過blktrace, debugfs分析磁碟IO
- Mac系統如何通過自帶的工具進行磁碟修復Mac
- 磁碟的IOPS計算與測量
- 如何通過資料管理影響資料質量
- 通過Linux命令過濾出binlog中完整的SQL語句LinuxSQL
- 通過Linux命令實現螢幕錄製和回放Linux
- Linux 系統如何通過 netstat 命令檢視連線數判斷攻擊Linux
- Linux如何通過命令檢視伺服器的記憶體條使用情況Linux伺服器記憶體
- 活動 | 假期過後小金庫告急?美團SRC專測活動來了!
- 如何測試Linux命令執行時間?Linux
- Linux磁碟管理常用的三個命令!Linux
- linux磁碟分割槽fdisk命令詳解Linux
- 關於oracle RAC 通過udev繫結磁碟Oracledev
- 如何通過全面質量管理 (TQM) 實現業務增長?
- Linux下磁碟I/O測試Linux
- Linux如何透過命令重新啟動服務?Linux
- 如何使用du 和 ncdu 兩個命令檢查 Linux 磁碟使用情況?Linux
- 通過命令curl 操作ElasticSearch指南Elasticsearch
- 通過truss命令trace問題
- LINUX磁碟使用命令DU的改進Linux
- Linux磁碟管理,這三個命令很重要!Linux