找回密码
 注册
关于网站域名变更的通知
查看: 402|回复: 1
打印 上一主题 下一主题

学习一下iostat的使用方法吧

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-18 09:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

& }) R+ H1 s3 n4 B, u安装:yum install sysstat
8 d$ O& F" J% \% C' k6 U; p# o6 G) @3 c$ l* R
查看与LVM对应关系:lvdisplay|awk  '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'" R1 u# G/ W# r! E1 `

: l5 y, p: ^$ R7 n; X' I 实例:
! j4 V5 q6 g8 K1 j, ?9 ~% e- z6 k/ z9 d" V
$iostat -x 1! U% m6 X1 h" t2 A
Linux 2.6.33-fukai (fukai-laptop)          _i686_    (2 CPU)
7 z* L, ?- V* f; S8 n1 w, |avg-cpu:  %user   %nice %system %iowait  %steal   %idle, J, Q* `3 s2 L% O
           5.47    0.50    8.96   48.26    0.00   36.82% `& b1 s: P, ?  z, F

" j7 c; z  a6 Z' t( t" W( G- ?Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
5 f, P0 {9 g, ~5 F7 E$ L+ tsda               6.00   273.00   99.00    7.00  2240.00  2240.00    42.26     1.12   10.57   7.96  84.40+ j6 s+ c% \9 g4 d% P
sdb               0.00     4.00    0.00  350.00     0.00  2068.00     5.91     0.55    1.58   0.54  18.80
: g1 |! e, _$ I1 @4 ?% @ 5 t" A' Y1 i! D3 s$ f" F
说明:6 _& Y4 I0 q0 n3 `) u( r$ L/ Q+ l
rrqm/s:   每秒进行 merge 的读操作数目。即 delta(rmerge)/s
5 y& ?) x* [" d0 vwrqm/s:  每秒进行 merge 的写操作数目。即 delta(wmerge)/s/ E! {* l* n- a) c
r/s:           每秒完成的读 I/O 设备次数。即 delta(rio)/s
! Y& ?0 I) C- m' [+ ]$ N: K$ Yw/s:         每秒完成的写 I/O 设备次数。即 delta(wio)/s
2 s4 ^, Q7 [/ j, L: U5 [3 prsec/s:    每秒读扇区数。即 delta(rsect)/s
& A; E7 w2 r: [! `1 d( ~wsec/s:  每秒写扇区数。即 delta(wsect)/s3 d4 @* A( m+ {( A2 ]
rkB/s:      每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
* W- a0 o* S: {* o* d0 C8 YwkB/s:    每秒写K字节数。是 wsect/s 的一半。(需要计算)) ?( n- q" C$ M) a& l, B9 I5 X) n
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
3 ?5 q" j. }# p2 ^& Ravgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。! m# L( v4 u2 s
await:    平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)0 k: Y  e8 b" ?0 _" g+ D4 D! I
svctm:   平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)6 R; r+ ^8 V6 x4 L) Z- V  h
%util:      一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)5 t4 o9 ~  E4 q

' f0 ]1 C, E( u 2 H2 z7 M' O9 q1 k( W0 `
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
+ ~8 ?2 \; s& P5 P, sidle小于70% IO压力就较大了,一般读取速度有较多的wait./ a, Z: J- H' ^( F' ~0 h, n
同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高); j# M! P& G: b
另外 await 的参数也要多和 svctm 来参考。差的过高就一定有 IO 的问题。' M) N; Y! K1 p) H* s; T
avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次操作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小.如果数据拿的大,才IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s.也就是讲,读定速度是这个来决定的。
+ H% @5 a8 k# d: |. b, g , v- Q! z1 @5 V& O  q4 r" j

! f$ c. b6 [9 {. b " _3 N6 c5 S! z: M4 p" ~

/ E9 p! ?( O4 o- O- Q % y& y% F8 ~$ F: N
' x7 h5 C1 C: y, \
另外还可以参考
, J. E# ^* o1 ?8 W. u% ~svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。
8 F3 L1 m) x8 T队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。) `, c! j& H3 u0 O. [/ _
, J4 J: E2 _& N- }

0 e" m; V: \) p9 P/ _# f" U  s  j注:
; R) W! b3 K" a# T" S4 M% `iostat在内核2.4和内核2.6中数据来源不太一样,对于kernel 2.4, iostat 的数据的主要来源是 /proc/partitions;在2.6中,数据来源主要是/proc/diskstats和/sys/block/sd*/stat这两个文件6 q& `, A( l4 S, b7 v: I6 J" r
2 g1 X  K% w- b: S. d
cat /proc/diskstats | grep sda
2 j1 b6 b$ |1 q8 o/ U   8    0 sda 8608337 4650455 896098215 9666364 21179395 77544435 867642604 170314316 0 11500968 179978332
1 |% q9 x6 A5 c' d+ M) a) \   8    1 sda1 609547 46647 9993834 1477736 10316312 28618957 311482264 6715428 0 3775012 8192352$ y& F6 s, f% W: c/ D
   8    2 sda2 279787 122 2239272 166044 24 85 872 920 0 166864 166940
) V: A* }# n( G: o3 P   8    3 sda3 7718898 4603552 883863197 8021508 10863059 48925393 556159468 163597968 0 8365140 171617840
) d  n& H3 `* i
& F7 J& o2 N( k/ T/ d, C" G/ C9 @第1列 : 磁盘主设备号(major)( _7 ]. c- d$ ?. o: \
第2列 : 磁盘次设备号(minor). `3 G" A+ r8 Q, M* I0 q. \
第3列 : 磁盘的设备名(name)/ @6 ^. _$ E& V; r% S# Q
第4列 : 读请求总数(rio)9 |1 R1 a" _5 y. Y, w# Q& X
第5列 : 合并的读请求总数(rmerge)
! Y% p! [/ h9 M# \$ X7 L$ D; r! D- }第6列 : 读扇区总数(rsect)
/ g+ E$ Q: ]' ]& y* ]. w第7列 :   读数据花费的时间,单位是ms.(从__make_request到 end_that_request_last)(ruse)! v# Y: R5 X" ~* M9 Y, X
第8列 :   写请求总数(wio)* q4 @( [% n/ d) P1 r3 W
第9列 :   合并的写请求总数(wmerge)! J6 X& F" I, J2 z1 g  f- u2 o
第10列 : 写扇区总数(wsect). d# ^, E' [$ m* t7 \* n
第11列 : 写数据花费的时间,单位是ms. (从__make_request到 end_that_request_last)(wuse)2 S8 I. n. I# I3 Q
第12列 : 现在正在进行的I/O数(running),等于I/O队列中请求数
$ v" s. k: V- l$ a; T第13列 : 系统真正花费在I/O上的时间,除去重复等待时间(aveq)
6 `, G- P+ T, B: _6 o6 `4 z第14列 : 系统在I/O上花费的时间(use)。

该用户从未签到

2#
发表于 2020-3-18 18:01 | 只看该作者
学习一下iostat的使用方法吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 22:18 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表