- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux 系统性能优化及瓶颈分析
一,用 vmstat 分析系统 I/O 情况
[root@localhost ~]# vmstat -n 3
(每个 3 秒刷新一次)
procs
memory
swap
io
--system
cpu
r
b
swpd
free
buff
cache
si
so
bi
bo in
cs
us sy
id wa
1
0
144 186164 105252
2386848
0
0
18
166
83
2
48
21
31
0
2
0
144 189620 105252 2386848
0
0
0
177
1039
1210
34
10
56
0
0
0
144 214324 105252
2386848
0
0
0
10
1071
670
32
5
63
0
0
0
144 202212 105252
2386848
0
0
0
189
1035
558
20
3
77
0
2
0
144 158772 105252 2386848
0
0
0
203
1065
2832
70
14
15
0
IO
-bi:从块设备读入的数据总量(读磁盘)( KB/S)
-bo:写入到块设备的数据总量(写磁盘)( KB/S)
随机磁盘读写的时候,这 2 个值越大(如超出 1M),能看到 CPU在 IO 等待的值也会越大
二,用 iostat 分析 I/O 子系统情况
如果你的系统没有 iostat,sar,mpstat 等命令,安装 sysstat- 包, iostat 工具将对系统的磁盘操作活动进行监视。 它的特点是汇报磁盘活动统计情况, 同时也会汇报出 CPU 使用情况。同 vmstat 一样, iostat 也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
iostat 的语法如下:
程序代码
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
-c 为汇报 CPU的使用情况;
-d 为汇报磁盘的使用情况;
-k 表示每秒按 kilobytes 字节显示数据;
-t 为打印汇报的时间;
-v 表示打印出版本信息和用法;
-x device 指定要统计的设备名称,默认为所有的设备;
interval 指每次统计间隔的时间;
count 指按照这个时间间隔统计的次数。
iostat 在内核和内核中数据来源不太一样, 对于 kernel , iostat 的数据的主要来源
/proc/partitions ;在中,数据来源主要是 /proc/diskstats 和/sys/block/sd*/stat
这两个文件
#cat /proc/diskstats | grep sda
8 0 sda 1547188 1 4 2 45 0 9 22
8 1 sda1 936 1876 6 12
8
2
sda2
6
4
8
3
sda3
1270
1441
33
264
8
4
sda4
4
8
0
0
8
5
sda5
648
1442
0
0
8
6
sda6
648
1442
0
0
1 列 : 磁盘主设备号 (major)
2 列 : 磁盘次设备号 (minor)
3 列 : 磁盘的设备名 (name)
4 列 : 读请求总数 (rio)
5 列 : 合并的读请求总数 (rmerge)
6 列 : 读扇区总数 (rsect)
7 列 : 读数据花费的时间,单位是 ms.(从 __make_request 到
end_that_request_last)(ruse)
8 列 : 写请求总数 (wio)
9 列 : 合并的写请求总数 (wmerge)
10 列 : 写扇区总数 (wsect)
11 列 : 写数据花费的时间,单位是 ms. (从 __make_request 到
end_that_request_last)(wuse)
12 列 : 现在正在进行的 I/O 数(running),等于 I/O 队列中请求数
13 列 : 系统真正花费在 I/O 上的时间,除去重复等待时间 (aveq)
14 列 : 系统在 I/O 上花费的时间 (use)。
#iostat -x 1
svctm:
%util:
avgqu-sz:
await:
avgrq-sz:
wkB/s:
wsec/s:
rkB/s:
rsec/s:
w/s:
wrqm/s:
r/s:
rrqm/s:
Linux 03/27/2009
avg-cpu: %user %nice %system %iowait %steal %idle
Device: rrqm/s
文档评论(0)