linux查看磁盤io的幾種方法

錫山網站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、自適應網站建設等網站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創(chuàng)新互聯(lián)公司。
怎樣才能快速的定位到并發(fā)高是由于磁盤io開銷大呢?可以通過三種方式:
第一種:用 top 命令 中的cpu 信息觀察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
具體的解釋如下:
Tasks: 29 total 進程總數(shù)
1 running 正在運行的進程數(shù)
28 sleeping 睡眠的進程數(shù)
0 stopped 停止的進程數(shù)
0 zombie 僵尸進程數(shù)
Cpu(s):
0.3% us 用戶空間占用CPU百分比
1.0% sy 內核空間占用CPU百分比
0.0% ni 用戶進程空間內改變過優(yōu)先級的進程占用CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
0.0% wa 的百分比可以大致的體現(xiàn)出當前的磁盤io請求是否頻繁。如果 wa的數(shù)量比較大,說明等待輸入輸出的的io比較多。
第二種:用vmstat
vmstat 命令報告關于線程、虛擬內存、磁盤、陷阱和 CPU 活動的統(tǒng)計信息。由 vmstat 命令生成的報告可以用于平衡系統(tǒng)負載活動。系統(tǒng)范圍內的這些統(tǒng)計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。
輸入命令:
vmstat 2 5
如果發(fā)現(xiàn)等待的進程和處在非中斷睡眠狀態(tài)的進程數(shù)非常多,并且發(fā)送到塊設備的塊數(shù)和從塊設備接收到的塊數(shù)非常大,那就說明磁盤io比較多。
vmstat參數(shù)解釋:
Procs
r: 等待運行的進程數(shù) b: 處在非中斷睡眠狀態(tài)的進程數(shù) w: 被交換出去的可運行的進程數(shù)。此數(shù)由 linux 計算得出,但 linux 并不耗盡交換空間
Memory
swpd: 虛擬內存使用情況,單位:KB
free: 空閑的內存,單位KB
buff: 被用來做為緩存的內存數(shù),單位:KB
Swap
si: 從磁盤交換到內存的交換頁數(shù)量,單位:KB/秒
so: 從內存交換到磁盤的交換頁數(shù)量,單位:KB/秒
IO
bi: 發(fā)送到塊設備的塊數(shù),單位:塊/秒
bo: 從塊設備接收到的塊數(shù),單位:塊/秒
System
in: 每秒的中斷數(shù),包括時鐘中斷
cs: 每秒的環(huán)境(上下文)切換次數(shù)
CPU
按 CPU 的總使用百分比來顯示
us: CPU 使用時間
sy: CPU 系統(tǒng)使用時間
id: 閑置時間
準測
更多vmstat使用信息
第二種:用iostat
安裝:
Iostat 是 sysstat 工具集的一個工具,需要安裝。
Centos的安裝方式是:
yum install sysstat
Ubuntu的安裝方式是:
aptitude install sysstat
使用:
iostat -dx 顯示磁盤擴展信息
root@fileapp:~# iostat -dx
r/s 和 w/s 分別是每秒的讀操作和寫操作,而rKB/s 和wKB/s 列以每秒千字節(jié)為單位顯示了讀和寫的數(shù)據(jù)量
如果這兩對數(shù)據(jù)值都很高的話說明磁盤io操作是很頻繁。
+++++++++++++++++++++++++++++++++++++
linux wa%過高,iostat查看io狀況
1, 安裝??iostat??
yum install sysstat
之后就可以使用?iostat 命令了,
2,入門使用
iostat -d -k 2
參數(shù) -d 表示,顯示設備(磁盤)使用狀態(tài);-k某些使用block為單位的列強制使用Kilobytes為單位;2表示,數(shù)據(jù)顯示每隔2秒刷新一次。
tps:該設備每秒的傳輸次數(shù)(Indicate the number of transfers per second that were issued to the device.)。"一次傳輸"意思是"一次I/O請求"。多個邏輯請求可能會被合并為"一次I/O請求"。"一次傳輸"請求的大小是未知的。kB_read/s:每秒從設備(drive expressed)讀取的數(shù)據(jù)量;
kB_wrtn/s:每秒向設備(drive expressed)寫入的數(shù)據(jù)量;
kB_read:讀取的總數(shù)據(jù)量;kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。
指定監(jiān)控的設備名稱為sda,該命令的輸出結果和上面命令完全相同。
iostat -d sda 2
默認監(jiān)控所有的硬盤設備,現(xiàn)在指定只監(jiān)控sda。?
3, -x 參數(shù)
iostat還有一個比較常用的選項 -x ,該選項將用于顯示和io相關的擴展數(shù)據(jù)。
iostat -d -x -k 1 10
輸出信息的含義
。
4, 常見用法
iostat -d -k 1 10? ? ? ? #查看TPS和吞吐量信息(磁盤讀寫速度單位為KB)
iostat -d -m 2? ? ? ? ? ? #查看TPS和吞吐量信息(磁盤讀寫速度單位為MB)
iostat -d -x -k 1 10? ? ? #查看設備使用率(%util)、響應時間(await) iostat -c 1 10 #查看cpu狀態(tài)
5, 實例分析
iostat -d -k 1 | grep vda
Device:? ? ? ? ? ? tps? ? kB_read/s? ? kB_wrtn/s? ? kB_read? ? kB_wrtn
sda10? ? ? ? ? ? 60.72? ? ? ? 18.95? ? ? ? 71.53? 395637647 1493241908
sda10? ? ? ? ? 299.02? ? ? 4266.67? ? ? 129.41? ? ? 4352? ? ? ? 132
sda10? ? ? ? ? 483.84? ? ? 4589.90? ? ? 4117.17? ? ? 4544? ? ? 4076
sda10? ? ? ? ? 218.00? ? ? 3360.00? ? ? 100.00? ? ? 3360? ? ? ? 100
sda10? ? ? ? ? 546.00? ? ? 8784.00? ? ? 124.00? ? ? 8784? ? ? ? 124
sda10? ? ? ? ? 827.00? ? 13232.00? ? ? 136.00? ? ? 13232? ? ? ? 136
上面看到,磁盤每秒傳輸次數(shù)平均約400;每秒磁盤讀取約5MB,寫入約1MB。
iostat -d -x -k 1
Device:? ? rrqm/s wrqm/s? r/s? w/s? rsec/s? wsec/s? ? rkB/s? ? wkB/s avgrq-sz avgqu-sz? await? svctm? %util
sda? ? ? ? ? 1.56? 28.31? 7.84 31.50? 43.65? ? 3.16? ? 21.82? ? 1.58? ? 1.19? ? 0.03? ? 0.80? 2.61? 10.29
sda? ? ? ? ? 1.98? 24.75 419.80? 6.93 13465.35? 253.47? 6732.67? 126.73? ? 32.15? ? 2.00? ? 4.70? 2.00? 85.25
sda? ? ? ? ? 3.06? 41.84 444.90 54.08 14204.08 2048.98? 7102.04? 1024.49? ? 32.57? ? 2.10? ? 4.21? 1.85? 92.24
可以看到磁盤的平均響應時間5ms,磁盤使用率80。磁盤響應正常,但是已經很繁忙了。
可以看到磁盤的平均響應時間5ms,磁盤使用率90。磁盤響應正常,但是已經很繁忙了。
await:? 每一個IO請求的處理的平均時間(單位是微秒毫秒)。這里可以理解為IO的響應時間,一般地系統(tǒng)IO響應時間應該低于5ms,如果大于10ms就比較大了
svctm? ? 表示平均每次設備I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,
如果await的值遠高于svctm的值,則表示I/O隊列等待太長,? 系統(tǒng)上運行的應用程序將變慢。
%util: 在統(tǒng)計時間內所有處理IO時間,除以總共統(tǒng)計時間
所以該參數(shù)暗示了設備的繁忙程度
。一般地,如果該參數(shù)是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因為磁盤的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。
也可以使用下面的命令,同時顯示cpu和磁盤的使用情況
等待時間超過5ms, 磁盤io有問題
top命令的其他參數(shù)代表的含義詳見top命令詳解
sar 命令是分析系統(tǒng)瓶頸的神器,可以用來查看 CPU 、內存、磁盤、網絡等性能。
sar 命令查看當前磁盤性能的命令為:
首先 、用top命令查看
top - 16:15:05 up 6 days, ?6:25, ?2 users, ?load average: 1.45, 1.77, 2.14
Tasks: 147 total, ? 1 running, 146 sleeping, ? 0 stopped, ? 0 zombie
Cpu(s): ?0.2% us, ?0.2% sy, ?0.0% ni, 86.9% id, 12.6% wa, ?0.0% hi, ?0.0% si
Mem: ? 4037872k total, ?4003648k used, ? ?34224k free, ? ? 5512k buffers
Swap: ?7164948k total, ? 629192k used, ?6535756k free, ?3511184k cached
查看12.6% wa
IO等待所占用的CPU時間的百分比,高過30%時IO壓力高
其次、 用iostat -x 1 10
avg-cpu: ?%user ? %nice ? ?%sys %iowait ? %idle
0.00 ? ? ? 0.00 ? ? 0.25 ? ?33.46 ? ?66.29
Device: ? ?rrqm/s ?wrqm/s ? r/s ? ?w/s ? ? rsec/s ? wsec/s ? ?rkB/s ? ?wkB/s avgrq-sz avgqu-sz ? await ?svctm ?%util
sda ? ? ? ? ?0.00 ? ?0.00 ? ? ?0.00 ? 0.00 ? ?0.00 ? ?0.00 ? ? ? ? 0.00 ? ? 0.00 ? ? 0.00 ? ? ? ? ? 0.00 ? ?0.00 ? ?0.00 ? 0.00
sdb ? ? ? ? ?0.00 ? 1122 ?17.00 ?9.00 ?192.00 9216.00 ? ?96.00 ?4608.00 ? 123.79 ? 137.23 1033.43 ?13.17 100.10
sdc ? ? ? ? ?0.00 ? ?0.00 ? ? 0.00 ? 0.00 ? ? 0.00 ? ? 0.00 ? ? ?0.00 ? ? 0.00 ? ? 0.00 ? ? ? ? ? ? 0.00 ? ?0.00 ? ? ?0.00 ? 0.00
查看%util 100.10 %idle 66.29
如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統(tǒng)已經滿負荷,該磁盤可能存在瓶頸。
idle小于70% IO壓力就較大了,一般讀取速度有較多的wait.
同時可以結合vmstat 查看查看b參數(shù)(等待資源的進程數(shù))
vmstat -1
如果你想對硬盤做一個IO負荷的壓力測試可以用如下命令
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
此命令為在當前目錄下新建一個2G的文件
我們在新建文件夾的同時來測試IO的負荷情況。
1. sar
每兩秒刷新一次, 總共5次
[root@dbhost01 ~]# sar 2 5
Linux 2.6.32-504.el6.x86_64 (dbhost01) 03/30/2018 _x86_64_ (4 CPU)
02:53:15 PM CPU %user %nice %system %iowait %steal %idle
02:53:17 PM all 0.66 0.00 1.72 0.66 0.00 96.96
02:53:19 PM all 1.34 0.00 3.35 0.80 0.00 94.51
02:53:21 PM all 0.79 0.00 1.59 1.45 0.00 96.17
02:53:23 PM all 0.40 0.00 2.00 0.80 0.00 96.80
02:53:25 PM all 0.66 0.00 1.85 0.79 0.00 96.70
Average: all 0.77 0.00 2.10 0.90 0.00 96.23
2. top
top -a 按照內存降序
[root@dbhost01 ~]# top -a
top - 15:00:54 up 6:04, 1 user, load average: 0.31, 0.19, 0.11
Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.8%us, 2.4%sy, 0.0%ni, 88.9%id, 0.8%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4048972k total, 3848576k used, 200396k free, 134844k buffers
Swap: 4194300k total, 1788k used, 4192512k free, 1835360k cached
3. vmstat
vmstat用于顯示虛擬內存,內核線程,磁盤,系統(tǒng)進程, CPU活動等統(tǒng)計信息。
需要安裝sysstat工具。
[root@dbhost01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 1788 202508 135064 1835920 0 0 32 26 96 276 1 2 95 1 0
[root@dbhost01 ~]#
[root@dbhost01 ~]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 1788 202336 135068 1836000 0 0 32 26 97 276 1 2 95 1 0
0 0 1788 202624 135068 1836000 0 0 25 29 4012 6682 0 1 98 1 0
0 0 1788 202624 135072 1836004 0 0 57 87 4003 6685 0 1 98 1 0
1 0 1788 202508 135072 1836004 0 0 57 33 4402 7353 1 1 98 0 0
0 0 1788 202540 135076 1836004 0 0 33 47 4002 6674 0 1 98 1 0
4. lsof(list open files)
[root@dbhost01 ~]# lsof | grep 1521
certmonge 2348 root 16r FIFO 0,8 0t0 15212 pipe
certmonge 2348 root 18r FIFO 0,8 0t0 15218 pipe
gipcd.bin 2754 grid 109u unix 0xffff880139152180 0t0 36936 socket
5. tcpdump
tcpdump -i eth1
15:24:28.777779 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.777809 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.778976 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779011 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779013 IP 192.168.2.82.50990 dbhost01.ssh: Flags [.], ack 393968, win 16652, options [nop,nop,TS val 2443327 ecr 22996360], length 0
15:24:28.779481 IP dbhost02-priv.23602 dbhost01-priv.24271: UDP, length 556
15:24:28.779585 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 80
15:24:28.779909 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 80
15:24:28.780584 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780590 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780820 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 556
15:24:28.782232 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
15:24:28.782235 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
6.netstat
[root@dbhost01 ~]# netstat -a | grep oracle
unix 2 [ ACC ] STREAM LISTENING 31861 /var/tmp/.oracle/ora_gipc_sdbhost01gridmyracdb-clusterCRFM_SIPC
unix 2 [ ACC ] STREAM LISTENING 33820 /var/tmp/.oracle/sdbhost01DBG_LOGD
unix 2 [ ACC ] STREAM LISTENING 41177 /var/tmp/.oracle/sdbhost01DBG_EVMD
unix 2 [ ACC ] STREAM LISTENING 65106 /var/tmp/.oracle/sAevm
unix 2 [ ACC ] STREAM LISTENING 65108 /var/tmp/.oracle/sSYSTEM.evm.acceptor.auth
7. htop
需要安裝
8. iostat
Total DISK READ: 91.48 K/s | Total DISK WRITE: 45.27 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
4071 be/4 oracle 30.18 K/s 0.00 B/s 0.00 % 4.69 % ora_lmon_orcl1
4117 be/4 oracle 60.36 K/s 15.09 K/s 0.00 % 3.69 % ora_ckpt_orcl1
2989 rt/4 grid 965.71 B/s 0.00 B/s 0.00 % 2.13 % ocssd.bin
4099 be/4 oracle 0.00 B/s 30.18 K/s 0.00 % 0.07 % ora_ckpt_test
2987 rt/4 grid 0.00 B/s 482.86 B/s 0.00 % 0.03 % ocssd.bin
2979 rt/3 root 0.00 B/s 3.77 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
2980 rt/3 root 0.00 B/s 15.09 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
9. iftop(流量監(jiān)控工具)
網站標題:linux中io監(jiān)控命令,linux網絡io監(jiān)控
網頁網址:http://chinadenli.net/article1/dsideod.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供手機網站建設、外貿網站建設、定制開發(fā)、ChatGPT、服務器托管、做網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)