您的位置:首页 > 运维架构 > Linux

linux sysstat相关工具sar、iostat等介绍

2010-10-15 19:10 393 查看
@简介: Sysstat是linux系统上的状态查看工具,包含监测系统性能及效率的一组工具,这些工具对于我
们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于
我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手;

Sysstat 软件包集成如下工具:
iostat : reports CPU statistics and input/output statistics for devices, partitions
              and network filesystems.
              报告cpu使用率以及硬盘网络的吞吐量。
mpstat:reports individual or combined processor related statistics.
              提供单个处理器或多个处理器相关数据;
pidstat:reports statistics for Linux tasks (processes) : I/O, CPU, memory, etc.
              报告linux上的进程io、cpu、内存等的使用率。
sar:      collects, reports and saves system activity information (CPU, memory,
              disks, interrupts, network interfaces, TTY, kernel tables,etc.)
              工具负责收集、报告并存储系统活跃的信息;
sadc:    is the system activity data collector, used as a backend for sar.是系统动态
              数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;
sa1:      collects and stores binary data in the system activity daily data file. It is a
              front end to sadc designed to be run from cron.
              工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具
              cron来运行,是为sadc所设计的程序前端程序;
sa2:      writes a summarized daily activity report. It is a front end to sar designed
              to be run from cron.
              工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通
      过cron来调用
sadf:    displays data collected by sar in multiple formats (CSV, XML, etc.) This is
              useful  to load performance data into a database, or import them in a
              spreadsheet to make graphs.
              显示被sar通过多种格式收集的数据;
nfsiostat: reports input/output statistics for network filesystems (NFS).
               报告nfs的吞吐率。
cifsiostat:reports CIFS statistics. 统计cifs的使用情况。
@安装: 在centos上可以通过yum安装Sysstat
yum install sysstat
但是安装的不是最新版本,好多功能没有,所以建议用源代码安装。
首先下载最新版sysstat-9.1.5.tar.gz
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-9.1.5.tar.gz
tar zxvf sysstat-9.1.5.tar.gz
cd sysstat-9.1.5
./configure
make
make install
如果没有指定--prefix,默认安装在/usr/local下。
Sysstat 通过a1 和sa2收集系统信息,如果要把收到的信息自动保存到文件中,必须通过cron
为sa1 和sa2 做计划任务。通过crontab –e 添加如下内容。
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 -d 1 1
# 0 * * * * root /usr/lib/sa/sa1 -d 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 –A
@Sysstat 工具集介绍: 通用参数说明:这些命令中,有些事收集统计,有些事报告显示统计,有些收集的同时也能报
告收集到的信息,下面每个命令都有说明。
 
统计采集的命令会把结果写入文件,如果文件不指定,则写入默认位置
 
既能统计也能显示报告的命令把结果写到控制台,同时也可以用参数指定写入的文件,这些要显
示的统计可能来自当前统计,也可能来自以前统计保存的文件;
 
只能显示报告的命令需要指定读取的文件,如果文件不存在则会从默认位置读取。
【注】默认位置,通常在/var/log/sa/sadd文件中,dd表示当前的天数,如sa1,如果指定的文
件名为”-”,也表示默认位置
 
这些命令中大部分都有[ interval [ count ] ] 可选
参数,interval参数定义统计或显示统计的间隔,count参数定义了统计或显示统计的个数;在
显示统计信息的时候
**如果不指定interval参数或者指定为0,
    **则当统计信息来源以前保存的文件,则显示文件所有内容;
    **如果来源于目前当前的的统计,则只显示一次;
**如果指定了interval,count没有指定或为0,
    **如果要显示的统计来源来自文件,则按照interval间隔显示文件全部内容。
    **如果文件内容来自当前命令的统计,则不停的统计统计并显示。
**如果指定了interval、count,则按照interval间隔显示count次。
pidstat:(报告) pidstat [ -C comm ] [ -d ] [ -h ] [ -I ] [ -l ] [ -p { pid [,...] | SELF | ALL } ] [ -r ]
[ -s ] [ -t ] [ -T { TASK | CHILD | ALL } ] [ -u ] [ -V ] [ -w ] [ interval [ count ] ]
-d统计io状况
-C string只显示名字中包含string的进程
-I在smp环境中,显示每个cpu的占用率
-l显示进程命令的名字以及参数
-p进程pid
-r报告页错误和内存使用情况。
-s报告栈的使用情况。
-t报告进程相关的线程情况
-T定义监视的类型(TASK:只统计指定进程;CHILD:统计指定进程以及子进程;ALL统计指定进程所属的进程及其所有子进程)
-u报告cpu使用率
-d:显示io统计 PID:进程pid
kB_rd/s:每秒钟进程读磁盘的字节数(kB)
kB_wr/s:每秒钟进程写磁盘的字节数(KB)
kB_ccwr/s:写磁盘被取消的字节数。
Command:进程的命令名
-r:显示页中断和内存信息 PID:进程pid
minflt/s:每秒钟产生的次中断
majflt/s:每秒钟产生的主中断
VSZ:使用的虚拟内存(KB)
RSS:实际驻留"在内存中"的内存数
Command:进程的命令名
-s:堆栈使用情况 pid:进程pid
StkSize:为进程堆栈预留的内存大小,
StkRef:用作堆栈的内存大小。
Command:进程的命令名
-u:报告cpu的使用率 PID :进程pid
%usr :用户态级cpu的使用率
%system :系统级的cpu使用率
%guest :运行虚拟处理器消耗的cpu。
%CPU :cpu的占用率
CPU :进程占用的cpu编号
Command:进程的命令字
-w:进程切换统计(只有在内核大于2.6.23才有用) sadc :(采集并写入文件) 位于 /usr/lib/sa目录中,sadc 是把数据写在一个二进制的文件中,需要用sadf工具来显示保存
的内容;/usr/local/lib/sa/sadc [ -C comment ] [ -S { INT | DISK | SNMP | IPV6 |
POWER | XDISK | ALL | XALL } ] [ -F ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]
-F  强制把数据写入文件;
-L  在写或者删除文件的时候获得独占锁,如果有不能获得锁,会在下一个间隔重试获得锁。防
止多个进程同时写文件,导致文件损坏。
-S { INT | DISK | SNMP | IPV6 | POWER | XDISK | ALL | XALL }:指定哪种数据要被
sadc收集。
-V 版本信息
interval 表示时间间隔,单位是秒,比如3 ;
count 统计数据的次数,也是一个数字;
outfile 输出统计到outfile文件;
sadc在interval间隔内抽样系统数据count次,并以二进制形式写入outfile或标准输出,如果输入
文件设置为-,则使用sysstat默认的路径,通常在/var/log/sa/sadd文件中,dd表示当前的天数,
如sa1。默认sadc收集除了中断和磁盘以为的所有的数据,如果要收集磁盘和中断数据,必须用-S
明确指明。当count参数没有指定时,sadc永远不停的写入收集到的数据;当count和interval都
没有指定的时候,会创建一个空文件。XDISK是DISK的一个扩展,它比DISK多统计分区的信息。
ALL包括除了XDISK,XALL包括所有。
sar :(收集报告并保存)
-A显示所有历史数据
-bio吞吐率的统计
-B报告页信息
-d报告物理块设备(存储设备)的写入、读取之类的信息,如果直观一点,可以和p参数共同使用,-dp
-f从一个二进制的数据文件中读取内容
-i interval  指定数据收集的时间,时间单位是秒
-e[ hh:mm:ss ]设置结束的时间
-n显示网络统计
-o把统计信息写入一个文件
-P报告每个处理器应用统计,用于多处理器机器,并且启用SMP内核才有效;
-p显示友好设备名字,以方便查看
-q显示运行队列的统计和负载
-r显示内存使用情况
-R显示内存统计
-S显示交换分区统计
-t这个选项对从文件读取数据有用,如果没有这个参数,会以本地时间为标准读出
-u报告CPU利用率的参数
-v报告inode, 文件或其它内核表的资源占用信息;
sar可以收集、报告、存储系统活动信息。具体分一下情况:
##当不指定interval参数,会全部显示以前收集到的文件内容。如果指定-f标志,sar从-f指定
     的以前保存的文件中提取内容,然后写入标准输出,如果没有指定-f标志,将从默认的日报文
     件(/var/log/sadd)读取。如果-f指定的文件或者默认位置没有文件,则提示没有那个文件目
     录或目录错误。
##当指定interval参数,如果指定了count则以interval为间隔显示count条,接下来说要显示
     的数据来源:果指定-f标志,sar从-f指定的以前保存的文件中提取内容,然后写入标准输出
    (-f -表示默认位置);如果没有指定-f标志,将从系统收集信息并显示到控制台,如果指定了
     -o标志,收集的数据同时会写到-o指定的文件中(-o -表示默认位置)和控制台。
 
如果没有-P标志,sar报告系统范围中整体cpu的使用的平均值;反之如果指定了-P标志,sar将只
报告某个cpu的使用状况;当-P ALL标志指定,每个单独的cpu和整体所有cpu的使用情况都被报告。
 
如果同时需要采样和统计报告,为sar指定输出文件将使得这很便利,运行如下命令:
sar -o datafile interval count >/dev/null 2>&1 &
所有被捕获的数据会以二进制形式写入datafile中,这些数据可以用sar  -f显示,如果不指定count参数,则文件
-b:io相关: tps  :每秒总共的物理设备的请求次数
rtps :每秒总共的物理设备的写请求次数
wtps :每秒的io写请求次数
bread/s :每秒的io读请求扇区数(1扇区=512byte)
bwrtn/s :每秒的io写请求扇区数
-B:页相关信息 pgpgin/s :每秒系统从磁盘置入的字节数(KB)
pgpgout/s :每秒系统置出到磁盘上的字节数(KB)
fault/s  :每秒钟系统产生的页中断(major + minor)。
majflt/s  :每秒产生的主中断次数(见【注】)。
pgfree/s :每秒被放入空闲队列中的页个数。
pgscank/s :每秒被页面交换守护进程kswapd扫描的页个数。
pgscand/s :每秒直接被扫描的页个数。
pgsteal/s :  每秒钟从cache中被清除来满足内存需要的页个数。
%vmeff:每秒清除的页占总扫描页的百分比。
-d:报告块设备相关信息 DEV :设备名
tps  :设备每秒的传输次数。
rd_sec/s  :每秒读的扇区数。
wr_sec/s  :每秒写的扇区数。
avgrq-sz  :平均的请求扇区数。
avgqu-sz :设备的平均请求的队列长度。
await  :平均每次io花费的时间(包括服务时间的队列等待时间)
svctm :(这个参数不准确,在将来版本中会去掉)
%util:一秒中有百分之多少的时间用于I/O 操作
-m { keyword [,...] | ALL }:报告cpu、风扇、电源、温度 相关信息。 -n { keyword [,...] | ALL }:显示网络统计信息 keyword 值:DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP,
SOCK6, IP6, EIP6, ICMP6, EICMP6 and UDP6
**DEV:
IFACE :网络接口的名字
rxpck/s :每秒收到的包数量
txpck/s :每秒发出的包的数量
rxkB/s :每秒收到的字节数(KB)
txkB/s :每秒发出的字节数(KB)
rxcmp/s :每秒收到的压缩包的数量
txcmp/s :每秒发出的压缩包的数量。
rxmcst/s :每秒收到的广播包的数量。
**EDEV:网络错误的信息
IFACE :网络接口的名字
rxerr/s :每秒收到的非法包的个数
txerr/s :每秒发出的非法包的数量
coll/s :遭遇冲突的发送包数量。
rxdrop/s :因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s :因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s :发送数据包时,每秒载波错误数
rxfram/s :每秒接收数据包的帧对齐错误数
rxfifo/s :接收的数据包每秒FIFO过速的错误数
txfifo/s :发送的数据包每秒FIFO过速的错误数
**SOCK:套接字信息
totsck:使用的套接字总数量
tcpsck:使用的TCP套接字数量
udpsck:使用的UDP套接字数量
rawsck:使用的raw套接字数量
ip-frag:使用的IP分片数量
tcp-tw:time_wait的套接字数量
**IP:
irec/s :每秒收到的数据包(包括错误)
fwddgm/s :每秒收到非本机终点ip包(即包的终点ip不是本机)
idel/s :每秒收到的成功递送的ip用户协议包。
orq/s :每秒应答的ip用户协议包。
asmrq/s :每秒收到的需要重组的ip分片。
asmok/s :每秒成功重组的数据包。
fragok/s :本机上每秒被分片的数据包
fragcrt/s :每秒产生的ip分片数
**TCP:
active/s :tcp连接从CLOSED状态迁移到SYN-SENT状态的次数。
passive/s :tcp连接从LISTEN状态迁移到SYN-RCVD状态的次数。
iseg/s :每秒收到的数据片段。
oseg/s :每秒发送的数据片段。
**UDP:
idgm/s  :每秒收到的数据报的个数
odgm/s  :每秒发送的数据报个数
noport/s :每秒钟收到的,其指定端口没有应用程序的数据报个数
idgmerr/s :每秒钟收到的,不能被递送的,除了其指定端口没有应用程序的数据报个数
-q:显示运行队列长度和负载 runq-sz :运行队列的长度,即等待 CPU 以便运行的内核线程数。通常,此值应小于 2。如果此值持续偏高,
则表明系统可能计算密集 (CPU-bound)。
plist-sz :任务队列中的任务个数
ldavg-1:系统最后1分钟的平均负载
ldavg-5 :系统最后5分钟的平均负载
ldavg-15:系统最后15分钟的平均负载
-r:显示内存统计 kbmemfree:可用的内存数(kB),即未被分配的内存。
kbmemused:使用的内存,不包括内核自己使用的内存
%memused:内存使用百分比
kbbuffers :被内核用作buffer缓冲的内存
kbcached :被内核用作cache缓冲的内存
kbcommit  :保证当前工作所需要的内存(KB)
%commit:当前需要的内存占总内存的百分比。
-R:内存统计 frmpg/s:  每秒被释放的内存页数,负值表示系统已经分配了的内存页数。注意:依据机器体系的不同,内存页
的大小有4kB或8kB
bufpg/s :每秒系统用于buffers的附加的内存页数。负值表示较少的页数用于系统buffers
campg/s : 每秒系统用于cached的附加的内存页数。负值表示较少的页数用于系统cached
-S:交换分区的统计 kbswpfree:空闲的交换分区(KB)
kbswpused:使用的交换分区(KB)
%swpused:交换分区使用百分比
kbswpcad:用于cache的swap内存数
%swpcad:用于cache的swap内存百分比
-W :交换分区的统计
pswpin/s:每秒钟换入的交换页数量。
pswpout/s:每秒钟置出的交换页数量。
-w:报告进程的创建和调度信息
proc/s:每秒创建的进程。
cswch/s:没秒上下文交换的进程。
-v:显示索引节点,文件和其他内核表。 dentunusd:在目录条目中没有使用的缓冲条目。
file-nr:被系统使用的文件句柄数量。
inode-nr:使用的索引节点数量。
pty-nr:正在使用的pty数量。
-u [ ALL ]:显示cpu统计 %user :用户态使用的cpu百分比,不包括虚拟处理器。
%usr :用户态使用的cpu百分比,包括虚拟处理器。
%nice :用户态nice优先级进程占用的cpu百分比。
%sys :内核态占用的cpu百分比。
%iowait :有突出io请求、cpu空闲的百分比。
%steal  :cpu等待系统进程调度的百分比。
%irq  :花费在硬件中断上的cpu百分比。
%soft :花费在软件中断上的cpu百分比。
%guest  :花费在运虚拟处理器的cpu百分比。
%idle:没有io操作、cpu处于空闲的cpu百分比。
【注】缺页中断可分为主缺页中断(Major Page Fault)和次缺页中断(Minor Page Fault),
要从磁盘读取数据而产生的中断是主缺页中断;数据已经被读入内存并被缓存起来,从内存缓存
区中而不是直接从硬盘中读取数据而产生的中断是次缺页中断。
本文出自 “ 出发了” 博客,请务必保留此出处http://chenchao40322.blog.51cto.com/2181131/406324
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: