您好,登錄后才能下訂單哦!
一、iostat安裝與用法介紹
主要用于監(jiān)控系統(tǒng)設備的IO負載情況,iostat首次運行時顯示自系統(tǒng)啟動開始的各項統(tǒng)計信息,之后運行iostat將顯示自上次運行該命令以后的統(tǒng)計信息。
用戶可以通過指定統(tǒng)計的次數(shù)和時間來獲得所需的統(tǒng)計信息。
1、安裝(RedHat系列)
查看系統(tǒng)是否安裝這個命令
#which iostat ##顯示如下,表示系統(tǒng)已經安裝了 /usr/bin/iostat 如果沒有安裝,則安裝 #yum install sysstat -y
2、語法
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ] -d 表示顯示設備(磁盤)使用狀態(tài) -x 表示顯示和io相關的擴展數(shù)據(jù) -k 表示某些使用block為單位的列強制使用Kilobytes為單位
用法1:
#iostat -x -k Linux 2.6.18-308.el5 (Ser108) 10/31/2014 avg-cpu: %user %nice %system %iowait %steal %idle 0.01 0.00 0.00 0.04 0.00 99.95 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.97 0.01 0.58 0.20 6.29 21.98 0.02 28.71 6.81 0.40 sda1 0.00 0.00 0.00 0.00 0.00 0.00 14.83 0.00 8.87 7.90 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 35.35 0.00 5.23 4.60 0.00 sda3 0.00 0.97 0.01 0.58 0.20 6.29 21.98 0.02 28.71 6.81 0.40
注:如果%util接近100%,說明產生的I/O請求太多,I/O系統(tǒng)已經滿負載,該磁盤可能存在瓶頸。
用法2:
#iostat -d -k 2 --其中2表示數(shù)據(jù)顯示每隔2秒刷新一次 輸出如下: Linux 2.6.18-308.el5 (Ser108) 11/05/2014 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.82 0.18 8.47 857070 39382031 sda1 0.00 0.00 0.00 869 59 sda2 0.00 0.00 0.00 760 0 sda3 0.82 0.18 8.47 855221 39381972 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 10.45 0.00 121.39 0 244 sda1 0.00 0.00 0.00 0 0 sda2 0.00 0.00 0.00 0 0 sda3 10.45 0.00 121.39 0 244
輸出信息解釋:
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ù)量:這些單位都為Kilobytes,即KB
3、指定監(jiān)控的設備
#iostat -d sda 2
-x 參數(shù) 該選項將用于顯示和io相關的擴展數(shù)據(jù),可以獲取更詳細的數(shù)據(jù),
例如:
#iostat -d -x -k 1 4 --表示每1秒刷新一次,一共刷新4次。 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 1.29 0.01 0.81 0.18 8.47 21.18 0.03 39.95 5.98 0.49 sda1 0.00 0.00 0.00 0.00 0.00 0.00 14.73 0.00 9.71 8.75 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 35.35 0.00 5.23 4.60 0.00 sda3 0.00 1.29 0.01 0.81 0.18 8.47 21.18 0.03 39.95 5.98 0.49 Device: rrqm/s wrqm/s r/s w/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 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Device: rrqm/s wrqm/s r/s w/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 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 3.00 0.00 18.00 0.00 80.00 8.89 0.88 32.56 2.72 4.90 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 3.00 0.00 18.00 0.00 80.00 8.89 0.88 32.56 2.72 4.90
輸出信息解釋:
rrqm/s:每秒這個設備相關的讀取請求有多少被Merge了(當系統(tǒng)調用需要讀取數(shù)據(jù)的時候,VFS將請求發(fā)到各個FS,如果FS發(fā)現(xiàn)不同的讀取請求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會將這個請求合并Merge); wrqm/s:每秒這個設備相關的寫入請求有多少被Merge了。 r/s: The number of read requests that were issued to the device per second 每秒發(fā)出的讀取請求的數(shù)量 w/s: The number of write requests that were issued to the device per second 沒面發(fā)出的寫入請求的數(shù)量 rkB/s: The number of kilobytes read from the device per second 以千字節(jié)每秒從設備讀取數(shù) wkB/s: The number of kilobytes written to the device per second. 以千字節(jié)每秒從設備寫入取數(shù) avgrq-sz 平均請求扇區(qū)的大小 avgqu-sz 是平均請求隊列的長度。毫無疑問,隊列長度越短越好。 await: 每一個IO請求的處理的平均時間(單位是微秒毫秒)。這里可以理解為IO的響應時間,一般地系統(tǒng)IO響應時間應該低于5ms,如果大于10ms就比較大了。 這個時間包括了隊列時間和服務時間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊列時間越短,反之差值越大,隊列時間越長,說明系統(tǒng)出了問題。 svctm 表示平均每次設備I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統(tǒng)上運行的應用程序將變慢。 %util: 這個值越小越好,在統(tǒng)計時間內所有處理IO時間,除以總共統(tǒng)計時間。例如,如果統(tǒng)計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閑置,那么該設備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設備的繁忙程度 。一般地,如果該參數(shù)是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因為磁盤的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。 rsec/s:每秒讀取的扇區(qū)數(shù); wsec/: 每秒寫入的扇區(qū)數(shù)。
-c 參數(shù),查看cpu信息
#iostat -c 1 2 #表示每1秒刷新一次,一共刷新2次 Linux 2.6.32-431.23.3.el6.x86_64 (zookeeper1) 05/27/2016 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.92 0.00 0.27 0.32 0.00 98.49 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00
4、常見用法:
#iostat -d -k 1 10 #查看TPS和吞吐量信息 #iostat -d -x -k 1 10 #查看設備使用率(%util)、響應時間(await) #iostat -c 1 10 #查看cpu狀態(tài)
5、實例分析
#iostat -d -k 1 8 Linux 2.6.32-504.el6.x86_64 (kvm5) 05/27/2016 _x86_64_ (8 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 25.41 3.72 93.20 16601966 416182172 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 42.00 0.00 104.00 0 104 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 52.00 0.00 172.00 0 172 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 34.00 0.00 128.00 0 128 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 9.00 0.00 16.00 0 16 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 25.00 0.00 72.00 0 72 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 31.00 0.00 80.00 0 80 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 24.00 0.00 92.00 0 92 以上可以看到,磁盤每秒傳輸次數(shù)平均約30,每秒磁盤讀取較少,寫入較多,約為100kB #iostat -d -k -x 1 5 Linux 2.6.32-504.el6.x86_64 (kvm5) 05/27/2016 _x86_64_ (8 CPU) Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 1.27 0.11 25.30 3.72 93.20 7.63 0.03 1.04 35.76 0.89 0.71 1.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 sda 0.00 7.00 0.00 32.00 0.00 132.00 8.25 0.12 3.84 0.00 3.84 1.75 5.60 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 7.00 0.00 58.00 0.00 420.00 14.48 0.03 0.60 0.00 0.60 0.59 3.40 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.00 0.00 27.00 0.00 76.00 5.63 0.01 0.37 0.00 0.37 0.33 0.90 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.00 0.00 5.00 0.00 32.00 12.80 0.02 4.80 0.00 4.80 4.80 2.40 以上可以看到,磁盤的平均響應時間較小,為0,磁盤使用率平均為3.0左右,比較小。
二、iotop工具
1、介紹
iotop命令是專門顯示硬盤IO的命令,界面風格類似top命令。這個命令只有在kernelv2.6.20及以后的版本中才有。
2、安裝
#yum install iotop -y
3、實例
#iotop 顯示如下,可以看到有一個進程,io占用比較多 Total DISK READ: 6.42 M/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1476 be/4 root 6.42 M/s 0.00 B/s 0.00 % 57.63 % java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xm~2.5.4-SNAPSHOT-FERDI/lib/stax2-api-3.1.1.jar:/root/dubbo-monitor-simple-2 1475 be/4 root 0.00 B/s 92.21 K/s 0.00 % 0.00 % java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xm~2.5.4-SNAPSHOT-FERDI/lib/stax2-api-3.1.1.jar:/root/dubbo-monitor-simple-2 1455 be/4 root 0.00 B/s 7.68 K/s 0.00 % 0.00 % java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/~per.server.quorum.QuorumPeerMain /usr/local/zookeeper/bin/../conf/zoo.cfg 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 4 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [stopper/0] 6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 8 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [stopper/1] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1] 10 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1] 11 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [events/0] 12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [events/1] 13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [cgroup] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 16 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [async/mgr] 17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [pm] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [sync_supers] 19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bdi-default] 20 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd/0] 21 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd/1]
2、參數(shù)
Options: --version show program's version number and exit -h, --help show this help message and exit -o, --only only show processes or threads actually doing I/O -b, --batch non-interactive mode -n NUM, --iter=NUM number of iterations before ending [infinite] -d SEC, --delay=SEC delay between iterations [1 second] -p PID, --pid=PID processes/threads to monitor [all] -u USER, --user=USER users to monitor [all] -P, --processes only show processes, not all threads -a, --accumulated show accumulated I/O instead of bandwidth -k, --kilobytes use kilobytes instead of a human friendly unit -t, --time add a timestamp on each line (implies --batch) -q, --quiet suppress some lines of header (implies --batch)
二、vmstat 工具
vmstat是一個即時顯示內存使用情況的工具,一般系統(tǒng)自帶的都有
vmstat 使用方法:
vmstat [-V] [-n] [delay [count]] -V 顯示vmstat的版本; -n causes the headers not to be reprinted regularly. -a 顯示所有激活和未激活內存的狀態(tài);print inactive/active page stats. -d 顯示硬盤統(tǒng)計信息;prints disk statistics -D 顯示硬盤分區(qū)表;prints disk table -p 顯示硬盤分區(qū)讀寫狀態(tài)等;prints disk partition statistics -s 顯示內存使用情況;prints vm table -m prints slabinfo -S 定義單位,k K delay 是兩次刷新時間間隔; 單位體積: k:1000 K:1024 m:1000000 M:1048576 (默認是 K) count 刷新次數(shù);
一個實例:
#vmstat 3 5 ##表示每3秒更新一次輸出信息,連續(xù)統(tǒng)計5次結束。 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 5 1 0 82471648 149068 7528352 0 0 0 12 0 1 16 18 66 0 0 3 0 0 82471760 149068 7528352 0 0 0 72 79652 150274 17 20 63 0 0 3 0 0 82471936 149068 7528352 0 0 0 64 79561 150275 16 20 64 0 0 5 0 0 82471936 149068 7528352 0 0 0 88 79784 150146 17 20 62 0 0
解釋:
r :The number of processes waiting for run time. 等待運行時間的進程數(shù),即等待的進程數(shù)、 b :The number of processes in uninterruptible sleep. 在等待io的進程數(shù) swpd: 虛擬內存的使用量 free:空閑內存量 buff:緩沖區(qū)中的內存 cache:被用來做為高速緩存的內存數(shù) si: 從磁盤交換到內存的交換頁數(shù)量,單位:KB/秒。 so: 從內存交換到磁盤的交換頁數(shù)量,單位:KB/秒。 bi: 發(fā)送到塊設備的塊數(shù),單位:塊/秒。 bo: 從塊設備接收到的塊數(shù),單位:塊/秒。 in: 每秒的中斷數(shù),包括時鐘中斷。 cs: 每秒的環(huán)境(上下文)轉換次數(shù)。 us:用戶進程使用的時間 。以百分比表示。 sy:系統(tǒng)進程使用的時間。 以百分比表示。 id:中央處理器的空閑時間 。以百分比表示。 wa:io等待時間 st:Time stolen from a virtual machine
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。