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

学习一下iostat的使用方法吧

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

0 j/ Z1 \. e% L  d+ c! [3 J/ @安装:yum install sysstat
5 e7 @% q( t" w& T& U3 [1 C, Z5 g6 U; o4 N
查看与LVM对应关系:lvdisplay|awk  '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'
  c' |3 a0 x- }% s# j- `! Q
# n6 o# t& Q# x0 W* X 实例:
7 e0 D8 K8 k- v. b8 x' A3 B  H
. k- b% d  n- z. L$iostat -x 1
+ ^2 F/ ^4 s$ I* K6 DLinux 2.6.33-fukai (fukai-laptop)          _i686_    (2 CPU)
9 o  ~& q$ d5 H6 ]6 f3 vavg-cpu:  %user   %nice %system %iowait  %steal   %idle
+ @3 @; L! ~1 L           5.47    0.50    8.96   48.26    0.00   36.82
4 \/ p8 B! N$ _: U- g; d
- V6 i0 \; Z0 x- a6 p3 bDevice:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util9 l9 u8 i! g0 }0 h& v
sda               6.00   273.00   99.00    7.00  2240.00  2240.00    42.26     1.12   10.57   7.96  84.400 f  j- A2 X3 P& P
sdb               0.00     4.00    0.00  350.00     0.00  2068.00     5.91     0.55    1.58   0.54  18.80* y6 O: t; j+ O$ b2 I7 _5 P

7 B0 G( k" E" B$ `" T1 t说明:2 V9 U* ?8 [4 f9 @
rrqm/s:   每秒进行 merge 的读操作数目。即 delta(rmerge)/s4 C2 z' s) p0 Z6 Q/ i2 l" j+ n
wrqm/s:  每秒进行 merge 的写操作数目。即 delta(wmerge)/s* |6 _; k0 X+ D
r/s:           每秒完成的读 I/O 设备次数。即 delta(rio)/s
* F+ n' l. `$ b! C. Ow/s:         每秒完成的写 I/O 设备次数。即 delta(wio)/s5 X* ?! K& u1 i& ?, M
rsec/s:    每秒读扇区数。即 delta(rsect)/s  K0 t6 X. c1 Z8 Q0 C- w. O: U
wsec/s:  每秒写扇区数。即 delta(wsect)/s
; \: }9 L8 h; R; XrkB/s:      每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
' O3 r6 V1 w5 v; W, F- K' S. vwkB/s:    每秒写K字节数。是 wsect/s 的一半。(需要计算)
3 I& p! ?: d+ W3 v6 E: Aavgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
( X+ z' p) X% K* _$ S4 F0 S, ]avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
! q3 x0 z9 n" g. h+ vawait:    平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
3 i: n6 W( E! `3 T0 _" `2 Isvctm:   平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
5 f' j4 K2 K% N, s%util:      一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒): L9 {3 ?+ h( G; q* H& C' _* V

, H7 R3 u/ R6 Y: v * a9 H! Y7 L: J; W
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
* ~) W/ O  a/ U* U$ c/ ridle小于70% IO压力就较大了,一般读取速度有较多的wait.* f# J9 I) F& `. n/ F% f) C" L1 \, M
同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)# M3 `, j$ f$ Q% T
另外 await 的参数也要多和 svctm 来参考。差的过高就一定有 IO 的问题。, P# w$ [! N# K# ~8 X- x. u. x0 y
avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次操作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小.如果数据拿的大,才IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s.也就是讲,读定速度是这个来决定的。4 {1 g* l6 `; a* \" K- i2 s

1 o3 t. \2 y8 W6 l& j, [8 D# J- o

) v4 v( a3 V, |, |# m- e
& y$ X  B) t& {- }* `  J, { # S5 W' n5 k5 ^( `0 ?' P% Z7 Y
! ]; k9 q5 p" W$ B8 q3 I
另外还可以参考
. Q8 B% `! ?2 ^1 C! t4 ~svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。
: \/ n1 a0 k3 {! h; c' [0 R队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
' M6 O( H  W( Y% U, j4 \! W7 |! q. |) c- g: N: W  o2 k. x

- X  v4 L" b3 x; b4 W注:* U( b! l# ~- Y6 ~
iostat在内核2.4和内核2.6中数据来源不太一样,对于kernel 2.4, iostat 的数据的主要来源是 /proc/partitions;在2.6中,数据来源主要是/proc/diskstats和/sys/block/sd*/stat这两个文件
( n7 N9 j+ j9 d5 q% `' |; y0 Y6 B  ]: C' W3 A& ?7 Y% l2 C2 B! z
cat /proc/diskstats | grep sda& O# s  z4 V1 f( S" w! ^% T) W8 R0 ^
   8    0 sda 8608337 4650455 896098215 9666364 21179395 77544435 867642604 170314316 0 11500968 179978332
8 d8 p/ M# A6 O( z- M+ n, g0 a   8    1 sda1 609547 46647 9993834 1477736 10316312 28618957 311482264 6715428 0 3775012 8192352" L) O7 D3 j2 u) ^7 H2 T
   8    2 sda2 279787 122 2239272 166044 24 85 872 920 0 166864 166940
8 Y0 Q% I% U; M# {: K   8    3 sda3 7718898 4603552 883863197 8021508 10863059 48925393 556159468 163597968 0 8365140 171617840
, B! g: {+ V8 S! P0 V, f6 D ' |) X& w% K$ }( V. D. k
第1列 : 磁盘主设备号(major)
" n( Y3 r7 K# }7 ]$ C9 H0 T9 D第2列 : 磁盘次设备号(minor); S. J( O* N  D% m9 m) g8 e& O
第3列 : 磁盘的设备名(name)8 g. u/ M$ y) Z, @: S! j8 Q
第4列 : 读请求总数(rio)# O# [5 @  V3 h. x( j* K
第5列 : 合并的读请求总数(rmerge)
/ z6 m: P( d4 `9 H; S第6列 : 读扇区总数(rsect)
$ d3 `% }" g2 E+ _/ @+ s1 |第7列 :   读数据花费的时间,单位是ms.(从__make_request到 end_that_request_last)(ruse)2 N2 v1 R  t7 c5 a( H+ {
第8列 :   写请求总数(wio)$ g# R, A  _5 e% }' H- }
第9列 :   合并的写请求总数(wmerge)
0 j8 R  W* j$ S第10列 : 写扇区总数(wsect)
" _! J/ k# Y) M9 Z7 V' n( s& A第11列 : 写数据花费的时间,单位是ms. (从__make_request到 end_that_request_last)(wuse)/ J. Y" K2 f, N3 p. O
第12列 : 现在正在进行的I/O数(running),等于I/O队列中请求数8 F, Q" S7 y# f2 ^
第13列 : 系统真正花费在I/O上的时间,除去重复等待时间(aveq), F1 X6 y& B, G- M- \3 K
第14列 : 系统在I/O上花费的时间(use)。

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-26 13:18 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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