Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101938511
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-04 22:23:30

 

sysstat是一个工具包,包含有几个很有用的系统检测程序,iostat,mpstat和sar.
Turbolinux的各个版本上,都包含这个工具包.
iostat用于输出CPU,I/O系统和磁盘分区的统计信息.可以用来分析磁盘I/O,带宽等信息.
mpstat用于输出CPU的各种统计信息. 可以用来分析程序运行时在内核态和用户态的工作情况.
sar用于定时搜集系统的各种状态信息.然后可以对系统各个时间点的状态进行监控.

iostat用于输出CPU和磁盘I/O相关的统计信息.
命令格式:

iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ]  ]
       [ interval [ count ] ]


iostat可以显示CPU和I/O系统的负载情况及分区状态信息.
直接执行iostat可以显示下面内容:

# iostat
Linux 2.6.9-8.11.EVAL (ts3-150.ts.cn.tlan)      08/08/2007

avg-cpu:  %user   %nice    %sys %iowait   %idle
             12.01    0.00        2.15    2.30       83.54

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
hda               7.13       200.12        34.73     640119     111076

各个输出项目的含义如下:

avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数.
Blk_read /s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read:   读入的block总数.
Blk_wrtn:  写入的block总数.

iostat各个参数说明:

	-c	仅显示CPU统计信息.与-d选项互斥.
	-d	仅显示磁盘统计信息.与-c选项互斥.
	-k	以K为单位显示每秒的磁盘请求数,默认单位块.
	-p	device | ALL
		与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
		# iostat -p hda
		或显示所有设备
		# iostat -p ALL
	-t    在输出数据时,打印搜集数据的时间.
	-V    打印版本号和帮助信息.
	-x    输出扩展信息.

              Blk_read
		读入块的当总数.

              Blk_wrtn
		写入块的总数.

              kB_read/s
		每秒从驱动器读入的数据量,单位为K.

              kB_wrtn/s
		每秒向驱动器写入的数据量,单位为K.

              kB_read
		读入的数据总量,单位为K.

              kB_wrtn
		写入的数据总量,单位为K.

              rrqm/s
		将读入请求合并后,每秒发送到设备的读入请求数.

              wrqm/s
		将写入请求合并后,每秒发送到设备的写入请求数.

              r/s
		每秒发送到设备的读入请求数.

              w/s
		每秒发送到设备的写入请求数.

              rsec/s
		每秒从设备读入的扇区数.

              wsec/s
		每秒向设备写入的扇区数.

              rkB/s
		每秒从设备读入的数据量,单位为K.

              wkB/s
		每秒向设备写入的数据量,单位为K.

              avgrq-sz
		发送到设备的请求的平均大小,单位是扇区.

              avgqu-sz
		发送到设备的请求的平均队列长度.

              await
		I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.

              svctm
		发送到设备的I/O请求的平均执行时间.单位是毫秒.

              %util
		在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.
		当这个值接近100%时,表示设备带宽已经占满.

     #  iostat
	显示一条统计记录,包括所有的CPU和设备.

      # iostat -d 2
	每隔2秒,显示一次设备统计信息.

      # iostat -d 2 6
	每隔2秒,显示一次设备统计信息.总共输出6次.

      # iostat -x hda hdb 2 6
	每隔2秒显示一次hda,hdb两个设备的扩展统计信息,共输出6次.

      # iostat -p sda 2 6
	每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次.

mpstat用于输出与CPU相关的统计信息.
mpstat命令格式:

       mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]

mpstat用于输出每一个CPU的运行状况,并会输出一个汇总的信息.

    interval      参数用来指定每次统计信息之间的间隔时间,单位是秒.指定0则输出自系统
	启动后的一个统计信息. 

    count      参数用来指定产生统计信息的总数.如果不指定,mpstat将不断产生统计信息.

    -P cpu | ALL
	表示CPU-ID,第一个CPU为0.ALL表示输出所有CPU的统计信息.

    -V     输出版本号和帮助信息.

       CPU
	CPU-ID,在多CPU系统里,每个CPU有一个ID号,第一个CPU为0.
	all表示,统计信息为所有CPU的平均值.

       %user
	显示在用户级别运行所占用CPU总时间的百分比.

       %nice
	显示在用户级别,用于nice操作,所占用CPU总时间的百分比.

       %system
	显示在kernel级别运行所占用CPU总时间的百分比.
	注意:这个值并不包括服务中断和softirq.

       %iowait
	显示用于等待I/O操作时,占用CPU总时间的百分比.

       %irq
	显示用于中断操作,占用CPU总时间的百分比.

       %soft
	显示用于softirq操作,占用CPU总时间的百分比.
	
       %idle
	显示CPU在空闲状态,占用CPU总时间的百分比.

       intr/s
	显示CPU每秒接收到的中断总数.

     # mpstat 2 5
	每隔2秒输出一个统计信息,共输出5次.

       mpstat -P ALL 2 5
	每隔2秒输出一次所有CPU的统计信息,共输出5次.

sar可以用来定时搜集系统信息,并输出各个时间点的统计信息.包括:CPU,磁盘I/O等信息.可以帮助
分析的系统负载状况.
sar默认将搜集的数据保存在/var/log/sysstat/saXX文件中,XX是当前日期的日.sa12表示保存的是12日的统计信息.

命令格式:

       sar [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -H ] [ -h ] [ -i interval ] [
       -q ] [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]  [
       -n  {  DEV | EDEV | SOCK | FULL } ] [ -x { pid | SELF | ALL } ] [ -X {
       pid | SELF | ALL } ] [ -I { irq | SUM | ALL | XALL } ] [ -P  {  cpu  |
       ALL } ] [ -o [ filename ] | -f [ filename ] ] [ -s [ hh:mm:ss ] ] [ -e
       [ hh:mm:ss ] ] [ interval [ count ] ]

       sar -u 2 5
	每隔2秒输出1次CPU统计信息,共输出5次.

       sar -I 14  2 10 -o
	每隔2秒输出1次关于中断14的统计信息,共输出10次.并把数据信息记录到默认的
	/var/log/saXX文件中.

       sar -r -n DEV -f /var/log/sa/sa16
	显示文件sa16中包含的内存,swap空间和网络的统计信息.

       sar -A
	显示今天的所有统计信息.

 	-A    相当于指定了-bBcdqrRuvwWy -I SUM  -n  FULL -P ALL.

       -b    显示I/O和传送速率的统计信息.

              tps
		每秒到物理磁盘的传送量.1个传送就是1个I/O请求.多个逻辑请求可以被
		合并成1个I/O请求.1个传送的大小是不确定的.

              rtps
		每秒到物理磁盘的读入请求数.

              wtps
		每秒到物理磁盘的写入请求数.

              bread/s
		每秒从设备读取的块总数.

              bwrtn/s
		每秒写入到设备的块总数.

       -B
		输出页统计信息.

       -c    输出进程统计信息.

              proc/s  每秒建立的进程总数.

       -d    输出每一个块设备的活动信息.

              tps
		显示每秒到设备的传送数.

              rd_sec/s
		每秒从磁盘读入的扇区数.

              wr_sec/s
		每秒向磁盘写入的扇区数.

       -e hh:mm:ss
		设置输出统计数据的截至时间,默认是18:00:00.

       -f filename
		从文件读取数据信息.数据信息文件是使用-o选项时生成的文件.

       -i interval
		指定间隔时长,单位为秒.

       -I irq | SUM | ALL | XALL
		输出指定中断的统计信息.irq是中断号.SUM指定显示每秒接收到的
		中断总数.ALL指定显示前16个中断.XALL指定输出全部的中断信息.
		如:
		# sar -I 14 1 10
		# sar -I SUM 1 5
		# sar -I ALL 1 2

       -n DEV | EDEV | SOCK | FULL
		输出网络统计信息.

       -o filename
		将信息保存到文件.如: # sar 1 4 -o /var/log/sysstat/sa20

       -P cpu | ALL
		表示CPU-ID,第一个CPU为0.ALL表示输出所有CPU的统计信息.

       -q  输出队列长度和负载状况.

       -r    输出内存和swap空间的统计信息.

       -R    输出内存统计信息.

       -s hh:mm:ss
		设置数据统计的起始时间.

       -u    输出CPU使用情况的统计信息.

       -v    输出inode,文件和其他核心表的信息.

       -V    输出版本号和帮助.

       -w    输出系统切换信息.

              cswch/s
		每秒上下文切换的总数.

       -W    输出swap统计信息.

       -x pid | SELF | ALL
		输出指定进程的统计信息.

       -X pid | SELF | ALL
		输出指定进程的子进程的统计信息.

       -y   输出TTY设备的活动信息.
阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~