硬碟實用工具
阿新 • • 發佈:2020-12-24
slabtop
安裝:
yum install procps-ng
slabtop -d 5 //每5s顯示一次
選項 | 說明 |
---|---|
-d n / --delay=n | 設定顯示的時間間隔 |
-s S / --sort=S | 設定排序規則。a,以活動物件數目排序;b,以每個slab物件數目排序;c,以快取大小排序;l,以slab數量排序;v,以多動的slab排序;n,以名字排序;o,以物件數目排序;p,以每slab的頁數排序;u,以快取利用率排序 |
-o /--once | 只顯示一次,之後退出 |
-V / --version | 顯示版本資訊,並且退出 |
--help | 顯示幫助資訊,並且退出 |
sar
-r Report memory utilization statistics. The following values are displayed: kbmemfree : 這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間. kbmemused : 這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間. %memused : 這個值是kbmemused和記憶體總量(不包括swap)的一個百分比. kbbuffers :這個值就是free命令中的buffer. kbcached :這個值就是free命令中的cache. kbcommit :保證當前系統所需要的記憶體,即為了確保不溢位而需要的記憶體(RAM+swap). %commit :這個值是kbcommit與記憶體總量(包括swap)的一個百分比.
可參考:https://i.cnblogs.com/posts/edit-done;postId=8945991
pidstat
使用-d選項,我們可以檢視程序IO的統計資訊:
[root@master ~]# pidstat -d 2 2 Linux 3.10.0-693.el7.x86_64 (master) 01/23/2019 _x86_64_ (8 CPU) 09:47:33 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 09:47:35 AM 0 1627 0.00 7.92 0.00 etcd 09:47:35 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 09:47:37 AM 0 1627 0.00 8.00 0.00 etcd Average: UID PID kB_rd/s kB_wr/s kB_ccwr/s Command Average: 0 1627 0.00 7.96 0.00 etcd
iostat
-x Display extended statistics.
-z Tell iostat to omit output for any devices for which there was no activity during the sample period.
[root@localhost ~]# iostat -xz 1
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 08/29/2019 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.02 0.00 0.05 0.00 0.11 99.81
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvda 0.00 0.01 0.78 0.10 2.21 0.70 6.59 0.00 0.36 0.20 1.54 0.14 0.01
dm-0 0.00 0.00 0.18 0.09 0.47 0.69 8.68 0.00 0.94 0.46 1.94 0.17 0.00
dm-1 0.00 0.00 0.17 0.00 0.67 0.00 8.02 0.00 0.08 0.08 0.00 0.08 0.00
rrqm/s: 每秒對該裝置的讀請求被合併次數,檔案系統會對讀取同塊(block)的請求進行合併
wrqm/s: 每秒對該裝置的寫請求被合併次數
r/s: 每秒完成的讀次數
w/s: 每秒完成的寫次數
rkB/s: 每秒讀資料量(kB為單位)
wkB/s: 每秒寫資料量(kB為單位)
avgrq-sz:平均每次IO操作的資料量(扇區數為單位)
avgqu-sz: 平均等待處理的IO請求佇列長度,對於單個磁碟如果值>1表明裝置飽和,對於多個磁碟陣列的邏輯磁碟情況除外
await(r_await、w_await): 平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位)
svctm:傳送給裝置 I/O 請求的平均服務時間(ms),如果 svctm 與 await 很接近,表示幾乎沒有 I/O 等待,磁碟效能很好,否則磁碟佇列等待時間較長,磁碟響應較差;
%util:裝置的使用率,表明每秒中用於 I/O 工作時間的佔比,單個磁碟當 %util>60% 的時候效能就會下降(體現在 await 也會增加),當接近100%時候就裝置飽和了,但對於有多個磁碟陣列的邏輯磁碟情況除外;
還有,雖然監測到的磁碟效能比較差,但是不一定會對應用程式的響應造成影響,核心通常使用 I/O asynchronously 技術,使用讀寫快取技術來改善效能,不過這又跟上面的實體記憶體的限制相制約了。
iotop
yum install iotop -y
iotp 拿到的是 TID,我們要轉成 PID,可以通過 readlinklai 找到 PID
readlink -f /proc/*/task/tid/../..
# 找到 PID 之後就可以看這個程序具體的讀寫情況
cat /proc/pid/io
# 還可以通過 lsof 命令來確定具體的檔案讀寫情況
lsof -p pid