基于linux服务器的性能分析与优化(五)
来源:互联网 发布:linux x86_64 编辑:程序博客网 时间:2024/06/16 15:01
iostat命令
iostat是I/O statistics(输入/输出统计)的缩写,是对系统的磁盘IO操作进行监视。显示磁盘读写操作的统计信息,同时给出CPU的使用情况。同vmstat一样,iostat也不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
有些机器上没有iostat工具,需要安装一个Systat的工具包,Systat是个开源软件,安装完会多出三个命令:iostat、sar和mpstat。
iostat的语法如下
iostat [ options... ] [ <interval> [ <count> ] ]Options are:[ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x ][ { <device> [ ... ] | ALL } ] [ -p [ { <device> | ALL } ] ]
-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 每秒以KB为单位显示数据
-t 打印出统计信息开始执行时间
-x device 指定要 统计的磁盘设备名称,默认为所有磁盘设备
interval 指定两次统计间隔时间
count 指定统计的次数,达到统计次数后将会自动退出
例如:
iostat -cLinux 2.6.9_7-7-0-0 (webserver) 07/09/2012avg-cpu: %user %nice %sys %iowait %idle 1.09 0.00 0.78 0.03 98.09由于使用了-c参数,只是显示系统cpu的统计情况,输出项每项的含义和sar命令的输出完全相同
下面通过iostat -d参数查看系统磁盘的使用情况
iostat -d 2 3
Linux 2.6.9_7-7-0-0 (webserver) 07/09/2012Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtncciss/c0d0 11.68 10.84 74.20 281061337 1923262480cciss/c0d0p1 0.00 0.00 0.00 624 696Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtncciss/c0d0 0.00 0.00 0.00 0 0cciss/c0d0p1 0.00 0.00 0.00 0 0Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtncciss/c0d0 34.50 0.00 4388.00 0 8776cciss/c0d0p1 0.00 0.00 0.00 0 0每项的输出含义如下:
Blk_read/s 每秒读取的数据块数
Blk_wrtn/s 每秒写入的数据块数
Blk_read 读取的所有块数
Blk_wrtn 写入的所有块数
需要注意的是,上面输出的第一项是系统从启动到统计时的所有传输信息,第二次输出的数据才代表监测的时间段内系统的传输值。
可以通过Blk_read/s和Blk_wrtn/s的值对磁盘的读写性能有一个基本的了解:如果Blk_read/s值很大,表示磁盘的读写很频繁,可以考虑优化磁盘或程序;如果blk_read/s的值很大,表示磁盘的读操作很多,可以将读取的数据输入内存中进行操作。有一个规则可以遵循:长期的、超大的数据读写,肯定是不正常的,通常会影响性能。
iostat -x组合还提供了对每个磁盘的单独统计,如果不指定磁盘,默认是对所有的磁盘进行统计。
iostat -x /dev/cciss/c0d0 2 3Linux 2.6.9_7-7-0-0 (webserver) 07/09/2012avg-cpu: %user %nice %sys %iowait %idle 1.09 0.00 0.78 0.03 98.09Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilcciss/c0d0 0.05 1.11 1.40 10.28 10.84 74.43 5.42 37.22 7.30 0.11 9.34 0.34 0.40avg-cpu: %user %nice %sys %iowait %idle 0.56 0.00 18.81 3.25 77.38Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilcciss/c0d0 0.00 0.00 65.00 0.00 852.00 0.00 426.00 0.00 13.11 0.29 4.43 4.15 27.00avg-cpu: %user %nice %sys %iowait %idle 7.05 0.00 5.18 0.44 87.34Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilcciss/c0d0 0.00 0.00 11.50 2.50 696.00 20.00 348.00 10.00 51.14 0.05 4.07 2.29 3.20
输出和sar -d输出基本相同,
rrqm/s表示每秒进行合并的读操作数目。
wrqm/s表示每秒进行合并的写操作数目。
r/s表示每秒完成读IO设备的次数
w/s表示每秒完成写IO设备的次数
rsec/s每秒读取的扇区数
wsec/s每秒写入的扇区数。
free命令
free是监控linux内存使用的指令。free -m total used free shared buffers cachedMem: 48291 33630 14660 0 24 22437-/+ buffers/cache: 11168 37122Swap: 0 0 0free -m表示查看以M为单位的内存使用情况,重点需要关注free列与cached列的输出值。
由输出可以得知,系统共有48G内存,系统空闲内存还有14660MB,其中buffer cache占了24MB,page cache站了22437MB。
由此可知系统缓存了很多的文件和目录,对于应用程序来说还有37122MB内存可以用,当然这37122MB内存包含了buffer cache和page cache的值,从swap项看出,交换分区还未使用,从应用的角度来说,系统的内存资源还非常充足。
一般有这样的一个经验公式:
当应用程序可用内存/系统物理内存 > 70%时,表示系统内存资源非常充足,不影响性能;
当应用程序可用内存/系统物理内存 < 20%时,表示系统内存资源紧缺,需要增加系统内存;
当 20% < 应用程序可用内存/系统物理内存 < 70%时,表示系统内存基本能满足需求,暂时不影响系统性能
free -g -s 5 total used free shared buffers cachedMem: 47 29 18 0 0 27-/+ buffers/cache: 1 45Swap: 0 0 0 total used free shared buffers cachedMem: 47 29 18 0 0 27-/+ buffers/cache: 1 45Swap: 0 0 0
free命令还可以实时监控内存的使用情况,使用-s参数可以在指定的时间段内不间断的监控内存使用情况。
其中-g表示以G(1024M)为单位显示内存使用情况
- 基于linux服务器的性能分析与优化(五)
- 基于linux服务器的性能分析与优化(一)
- 基于linux服务器的性能分析与优化(二)
- 基于linux服务器的性能分析与优化(三)
- 基于linux服务器的性能分析与优化(四)
- 基于linux服务器的性能分析与优化(六)
- 基于Linux服务器的性能分析与优化
- 基于Linux服务器的性能分析与优化2
- 基于Linux服务器的性能分析与优化
- linux服务器的性能分析与优化
- linux服务器的性能分析与优化
- linux服务器的性能分析与优化
- linux服务器的性能分析与优化
- 【Linux 优化篇】之 linux服务器的性能能分析与优化
- Web服务器性能监控分析与优化
- 基于MySQL服务器的性能优化
- Linux系统下WEB服务器的架设与性能优化
- (转)Linux服务器性能评估与优化
- linux 下载makefile 文件中设置好库文件的路径后还找不到的情况
- 2012.7.6总结
- NSString与int和float的相互转换
- stl map 总结
- 面试和被面试的经验(一)
- 基于linux服务器的性能分析与优化(五)
- GPIO的上拉下拉功能说明
- 字符设备
- 数的分解
- Linux中断编程
- c#中的readonly和const关键字的认识
- FS机安装指南
- IOS中界面移动方法
- 为什么要选择“现场开发”