Linux命令扫盲 之 sar
linux cpu使用率计算方法

linux cpu使用率计算方法Linux操作系统中,CPU使用率是一个重要的性能指标,它可以帮助我们了解系统的负载情况,判断系统的运行状态是否正常。
那么,如何计算Linux系统中的CPU使用率呢?CPU使用率的计算方法可以分为两个部分:采样和计算。
采样是指获取CPU使用情况的数据,计算是指将采样的数据进行处理,得出CPU使用率的结果。
下面我们分别介绍一下采样和计算的具体方法。
1. 采样方法Linux系统中,可以通过多种方式采样CPU使用情况的数据。
常用的方法有以下几种:(1)/proc/stat文件/proc/stat是一个虚拟的文件系统,它提供了各种系统信息的统计数据。
其中,CPU使用情况的数据可以从第一行的“cpu”行中获取。
具体来说,/proc/stat文件中“cpu”行的各个字段含义如下: user:用户态CPU时间,不包括nice值为负的进程nice:nice值为负的进程所占用的CPU时间system:内核态CPU时间idle:空闲CPU时间iowait:IO等待时间irq:硬中断时间softirq:软中断时间steal:虚拟机偷取的CPU时间guest:虚拟机运行的CPU时间guest_nice:nice值为负的虚拟机运行的CPU时间(2)top命令top命令可以实时显示系统的进程和CPU使用情况。
在top命令输出的信息中,CPU使用率可以从第三行中的“%CPU”字段中获取。
(3)sar命令sar命令可以采样系统各项资源的使用情况,包括CPU使用率。
具体命令如下:sar -u 1 10表示每秒采样一次,共采样10次。
2. 计算方法一旦获取了CPU使用情况的数据,就可以进行计算了。
计算方法如下:(1)计算总的CPU使用时间可以通过/proc/stat文件中“cpu”行中的user、nice、system、idle、iowait、irq、softirq、steal、guest和guest_nice字段,计算出从系统启动开始到现在的总CPU使用时间。
如何在Linux系统中查看网络接口的传输负载

如何在Linux系统中查看网络接口的传输负载网络接口的传输负载是指网络接口所承载的数据量和传输速度等信息。
在Linux系统中,可以通过一些命令和工具来查看网络接口的传输负载情况。
本文将介绍如何在Linux系统中进行查看。
1. 使用ifconfig命令查看网络接口信息:ifconfig命令用于显示和配置网络接口的状态。
通过该命令可以查看网络接口的传输负载、IP地址等信息。
在终端中输入以下命令来查看:```ifconfig```该命令会列出当前所有的网络接口及其相关信息,包括传输负载信息。
2. 使用ip命令查看网络接口信息:ip命令是Linux系统中的一个强大工具,可以用于查看和配置网络接口的各种参数。
在终端中输入以下命令来查看网络接口的传输负载:```ip -s link show```该命令会显示所有网络接口的详细信息,包括传输负载、传输错误等统计信息。
3. 使用sar命令监测网络接口的传输负载:sar是一个强大的系统性能监测工具,可以用于监测和报告系统的各项性能指标,包括网络接口的传输负载。
在终端中输入以下命令来监测网络接口的传输负载:```sar -n DEV 1```该命令会每秒钟输出一次网络接口的传输负载情况,包括传输速度、传输错误等统计信息。
4. 使用nload命令实时监测网络接口的传输负载:nload是一个实时网络流量监测工具,可以直观地显示网络接口的传输负载情况。
在终端中输入以下命令来实时监测网络接口的传输负载:```nload```该命令会以图形化的方式显示当前网络接口的传输负载情况,包括上传速度、下载速度等信息。
5. 使用Wireshark分析网络接口的传输负载:Wireshark是一个功能强大的网络协议分析工具,可以用于抓包和分析网络数据。
通过Wireshark,可以详细地分析网络接口的传输负载情况。
首先,需要安装Wireshark,在终端中输入以下命令来安装Wireshark:```sudo apt-get install wireshark```安装完成后,通过以下命令来启动Wireshark:```sudo wireshark```然后,在Wireshark界面中选择相应的网络接口进行抓包和分析,可以查看传输负载、数据包数量等信息。
Shell脚本及linux命令学习

Shell脚本及linux命令学习∙echo "内容" |mail -s "标题" "收件人"mail [邮箱] <<EOF;OOXX(内容)EOF #结束符∙在屏幕直接按照制定格式输出cat << EOFooxx(内容)EOF∙AWK介绍:{}内视为一个原子操作,以“;”分隔命令,顺序进行∙hostname 命令:显示主机名;hostname -s 显示主机名(不完整)-i IP地址* whoami 显示当前用户名∙pstree work 查看当前进程及线程数∙rz,sz:用SecurtCRT时,linux与客户端间传文件∙echo $PATH:查看自己有权限的bin目录∙du -s,-sm,-sk:查看文件夹大小∙sar:linux性能检测工具∙awk的OFS:echo a b c d | awk 'BEGIN {OFS=":"} {print $1, $2, $3, $5}'a:b:c:d (替换分隔符)∙tar xfj (.bz2) tar czvf(打包)xzvf(解包)(.tar.gz)(.tgz)∙xxd命令:查看二进制文件∙teeprot.pl:截包、转发、中转工具-l -r -f∙seekone:∙wget -r -nd(不下载目录结构)--limit-rate==2M ftp://tc...//home/...∙time:计算执行时间∙uname 显示当前操作系统名称∙file:辨识文件类型∙ldd:用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题∙set:不带任何参数的set命令将显示shell的全部变量。
∙export:设置环境变量∙unset:清楚环境变量∙mkdir -p:创建上层目录,如mkdir -p /home/work/lixiaowen/123/456∙vi中段注释:开头行添加<<BLOCK,结尾行BLOCK∙vi中打开多个文件:在vi中输出sp ,vi -o ...∙Linux的五个查找命令:find,locate,whereis,which,type 网上找的说明∙sudo:限制版本的su。
Unix,Linux 磁盘 IO 性能监控命令

Unix/Linux 磁盘I/O 性能监控命令磁盘I/O 性能监控指标和调优方法在介绍磁盘I/O 监控命令前,我们需要了解磁盘I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能。
磁盘I/O 性能监控的指标主要包括:指标1:每秒I/O 数(IOPS 或tps)对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘I/O, 磁盘的IOPS 就是每秒磁盘连续读次数和连续写次数之和。
当传输小块不连续数据时,该指标有重要参考意义。
指标2:吞吐量(Throughput)指硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。
其单位一般为Kbps, MB/s 等。
当传输大块不连续数据的数据,该指标有重要参考作用。
指标3:平均I/O 数据尺寸平均I/O 数据尺寸为吞吐量除以I/O 数目,该指标对揭示磁盘使用模式有重要意义。
一般来说,如果平均I/O 数据尺寸小于32K,可认为磁盘使用模式以随机存取为主;如果平均每次I/O 数据尺寸大于32K,可认为磁盘使用模式以顺序存取为主。
指标4:磁盘活动时间百分比(Utilization)磁盘处于活动时间的百分比,即磁盘利用率,磁盘在数据传输和处理命令(如寻道)处于活动状态。
磁盘利用率与资源争用程度成正比,与性能成反比。
也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。
一般来说,如果磁盘利用率超过70%,应用进程将花费较长的时间等待I/O 完成,因为绝大多数进程在等待过程中将被阻塞或休眠。
指标5:服务时间(Service Time)指磁盘读或写操作执行的时间,包括寻道,旋转时延,和数据传输等时间。
其大小一般和磁盘性能有关,CPU/ 内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。
如果该值持续超过20ms,一般可考虑会对上层应用产生影响。
指标6:I/O 等待队列长度(Queue Length)指待处理的I/O 请求的数目,如果I/O 请求压力持续超出磁盘处理能力,该值将增加。
linux一些常用的查看资源使用命令

linux一些常用的查看资源使用命令
在Linux系统中,可以使用以下命令来查看资源的使用情况:
1. top:实时查看系统的整体运行情况,包括CPU、内存、进程等的使用情况。
2. free:查看系统内存的使用情况,包括空闲内存、已使用内存、缓存和缓冲区的使用情况。
3. df:查看文件系统的磁盘空间使用情况,包括总容量、已用空间、剩余空间和挂载点。
4. du:查看目录或文件的磁盘使用情况,可以查看目录下所有文件的大小。
5. ps:查看系统当前运行的进程,可以查看进程的PID、占用CPU和内存等信息。
6. iostat:查看系统磁盘和设备的IO使用情况,包括读写速度、IOPS等。
7. netstat:查看网络连接和网络统计信息,包括监听端口、已建立的连接等。
8. sar:查看系统性能统计数据,包括CPU使用率、内存使用率、磁盘IO等。
9. vmstat:查看系统的虚拟内存使用情况,包括交换空间、页缓存、进程等。
10. lsof:查看系统打开的文件和网络连接,可以查看进程打开的文件和端口。
以上只是常用的几个命令,实际上Linux还有很多其他命令可以查看系统资源的使用情况,可以根据具体需求选择适合的命令来使用。
优化AIX 7磁盘性能 第一部分磁盘I O概述和长期监控工具【sar+nmon+ topas】

优化AIX 7磁盘性能第一部分磁盘I/O概述和长期监控工具【sar+nmon+ topas】简介磁盘 I/O 优化的关键部分涉及到在构建系统之前实现最佳实践。
因为当系统已经启动并处于运行状态时,很难再对数据进行移动,所以需要在规划磁盘和 I/O 子系统环境时正确地完成这项任务,这一点是非常重要的。
这包括物理架构、逻辑磁盘排列以及逻辑卷和文件系统配置。
当系统管理员听到可能出现了磁盘争用问题时,他或她首先会求助于 iostat。
iostat 等同于使用 vmstat 提供有关内存的报告,它是获得有关 I/O 子系统的当前运行概况的一种快速而原始的方法。
尽管运行 iostat 并不是一种完全不合理的反应,但是很早就应该着手考虑磁盘 I/O 的问题,而不是等到必须进行调优的时候。
如果没有从一开始就正确地为环境配置磁盘,那么任何调优工作都无法提供帮助。
而且,有一点非常重要,需要了解磁盘 I/O 的具体情况,以及它与 AIX® 和 your System p™ 硬件之间的关系。
对于磁盘 I/O 调优来说,AIX 特有的工具和实用工具比通用的 UNIX® 命令和工具能够提供更多的帮助,因为它们的任务就是帮助优化本机 AIX 磁盘 I/O 子系统。
在本文中,我们要定义和介绍 AIX I/O 栈,并将其与磁盘性能的物理和逻辑方面关联起来。
本文介绍直接、并发和异步 I/O:它们是什么,如何启用它们,以及如何监控和优化它们。
本文还介绍一些长期监控工具,应该使用它们来帮助优化系统。
听到 iostat 并不是我们推荐的帮助长期收集统计数据的工具,您可能会感到奇怪。
本文讨论 AIX 7 的 beta 版中的支持和变化,包括不同子系统的配置方式方面的变化。
AIX 7 中的主要变化进一步简化了许多 I/O 子系统的操作和配置,这个改进过程从 AIX 6 就开始了。
其结果是许多 I/O 子系统不再需要启用和配置了。
第11单元-Linux系统系统监视
Procs r 列标示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU数, 说明CPU不足,需要增加CPU b 列标示在等待资源的进程数,比如正在等待I/O或者内存交换等。
Memory Swpd 列标示切换到内存交换区的内存大小(以KB为单位)。如果swpd的值 不为0,或者比较大,只要si、so的值长期为0,不会影响系统性能。 Free 列标示切换到内存交换分区的物理内存数量(以KB为单位) Buff列标示buffers cache 的内存数量,一般对块设备的读写才需要缓冲。 Cache列标示page cached的内存数量,一般作为文件系统进行缓冲,频繁访 的文件都会被缓存。如果cache值较大,说明缓存的文件数较多,如果此时io 中的bi比较小,说明文件系统效率比较好。
系统性能分析标准和优化原则
Vmstat 命令 1.vmstat命令 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,很 多linux发行版本都默认安装了此命令工具,利用vmstat命令可以对 操作系统的内存信息、进程状态、CPU活动等进行监视,不足之处 是无法对某个进程进行深入分析。 vmstat使用语法如下: vmstat [-V] [-n] [delay [count]] 各个选项及参数含义如下: l -V:表示打印出版本信息,是可选参数。 l -n:表示在周期性循环输出时,输出的头部信息仅显示一次。 l delay:表示两次输出之间的间隔时间。 l count:表示按照“delay”指定的时间间隔统计的次数。默认为1。 例如: vmstat 3 表示每3秒钟更新一次输出信息,循环输出,按ctrl+c停止输出。 vmstat 3 5 表示每3秒更新一次输出信息,统计5次后停止输出。
同步sar逻辑h
同步sar逻辑h一、sar概述sar是一款在Linux系统中广泛使用的性能分析工具,可以通过收集系统的各项指标数据来帮助管理员分析系统的性能状况。
sar以固定的时间间隔采样系统指标数据,并将这些数据保存在文件中,供后续分析使用。
二、sar的同步逻辑1. 工作原理sar的同步逻辑是通过在操作系统内核中运行的系统调用来实现的。
sar在指定的时间间隔内,通过调用系统调用获取各项系统指标数据,然后将这些数据保存在文件中。
这种同步方式可以保证采样的数据准确性和一致性。
2. 同步方式sar采用的同步方式是通过系统调用来获取系统指标数据。
在Linux 系统中,sar使用的主要系统调用是gettimeofday和times。
gettimeofday用于获取当前的时间戳,times用于获取系统的运行时间和CPU时间等信息。
sar通过定时调用这些系统调用,可以在指定的时间间隔内同步地获取系统指标数据。
3. 使用注意事项在使用sar时,需要注意以下几点:- 需要以root权限运行sar,因为获取系统指标数据需要访问系统调用,而这些调用通常只对root用户开放。
- 需要指定合适的时间间隔,以便采集足够的数据来进行分析。
时间间隔过短会导致数据量过大,而时间间隔过长则可能会错过一些重要的系统状况。
- 需要选择合适的数据输出格式,以便后续的分析。
sar支持多种输出格式,如文本、CSV和XML等。
- 需要根据实际情况选择需要采集的系统指标,以避免不必要的数据收集和分析。
三、总结sar作为一款优秀的性能分析工具,通过同步逻辑的实现,能够准确地采集系统指标数据,并提供给管理员进行后续的性能分析。
我们可以根据实际需要,合理选择时间间隔和输出格式,并注意使用注意事项,以便更好地利用sar进行系统性能分析和优化。
通过本文的介绍,我们对sar的同步逻辑有了更深入的了解。
sar 的同步方式通过系统调用来获取系统指标数据,工作原理简单而高效。
linux查看系统资源命令
linux查看系统资源命令lsof -n | grep loglsof -p 进程id 能看到这个进程加载了哪些资源,连接了哪些⽂件,⾃⼰⽹络链接虽然平时⼤部分⼯作都是和Java相关的开发, 但是每天都会接触Linux系统, 尤其是使⽤了Mac之后, 每天都是⼯作在⿊⾊背景的命令⾏环境中. ⾃⼰记忆⼒不好, 很多有⽤的Linux命令不能很好的记忆, 现在逐渐总结⼀下, 以便后续查看.基本操作Linux关机,重启# 关机shutdown -h now# 重启shutdown -r now查看系统,CPU信息# 查看系统内核信息uname -a# 查看系统内核版本cat /proc/version# 查看当前⽤户环境变量envcat /proc/cpuinfo# 查看有⼏个逻辑cpu, 包括cpu型号cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c# 查看有⼏颗cpu,每颗分别是⼏核cat /proc/cpuinfo | grep physical | uniq -c# 查看当前CPU运⾏在32bit还是64bit模式下, 如果是运⾏在32bit下也不代表CPU不⽀持64bitgetconf LONG_BIT# 结果⼤于0, 说明⽀持64bit计算. lm指long mode, ⽀持lm则是64bitcat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l建⽴软连接ln -s /usr/local/jdk1.8/ jdkrpm相关# 查看是否通过rpm安装了该软件rpm -qa | grep 软件名sshkey# 创建sshkeyssh-keygen -t rsa -C your_email@#id_rsa.pub 的内容拷贝到要控制的服务器的 home/username/.ssh/authorized_keys 中,如果没有则新建(.ssh权限为700, authorized_keys权限为600)命令重命名# 在各个⽤户的.bash_profile中添加重命名配置alias ll='ls -alF'同步服务器时间sudo ntpdate -u ntp.api.bz后台运⾏命令# 后台运⾏,并且有nohup.out输出nohup xxx &# 后台运⾏, 不输出任何⽇志nohup xxx > /dev/null &# 后台运⾏, 并将错误信息做标准输出到⽇志中nohup xxx >out.log 2>&1 &强制活动⽤户退出# 命令来完成强制活动⽤户退出.其中TTY表⽰终端名称pkill -kill -t [TTY]查看命令路径which <命令>查看进程所有打开最⼤fd数ulimit -n配置dnsvim /etc/resolv.confnslookup,查看域名路由表nslookup last, 最近登录信息列表# 最近登录的5个账号last -n 5设置固定ipifconfig em1 192.168.5.177 netmask 255.255.255.0查看进程内加载的环境变量# 也可以去 cd /proc ⽬录下, 查看进程内存中加载的东西ps eww -p XXXXX(进程号)查看进程树找到服务器进程ps auwxf查看进程启动路径cd /proc/xxx(进程号)ls -all# cwd对应的是启动路径添加⽤户, 配置sudo权限# 新增⽤户useradd ⽤户名passwd ⽤户名#增加sudo权限vim /etc/sudoers# 修改⽂件⾥⾯的# root ALL=(ALL) ALL# ⽤户名 ALL=(ALL) ALL强制关闭进程名包含xxx的所有进程ps aux|grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9磁盘,⽂件,⽬录相关操作vim操作#normal模式下 g表⽰全局, x表⽰查找的内容, y表⽰替换后的内容:%s/x/y/g#normal模式下0 # 光标移到⾏⾸(数字0)$ # 光标移⾄⾏尾shift + g # 跳到⽂件最后gg # 跳到⽂件头# 显⽰⾏号:set nu# 去除⾏号:set nonu# 检索/xxx(检索内容) # 从头检索, 按n查找下⼀个xxx(检索内容) # 从尾部检索打开只读⽂件,修改后需要保存时(不⽤切换⽤户即可保存的⽅式) # 在normal模式下:w !sudo tee %查看磁盘, ⽂件⽬录基本信息# 查看磁盘挂载情况mount# 查看磁盘分区信息df# 查看⽬录及⼦⽬录⼤⼩du -H -h# 查看当前⽬录下各个⽂件, ⽂件夹占了多少空间, 不会递归du -sh *wc命令# 查看⽂件⾥有多少⾏wc -l filename# 看⽂件⾥有多少个wordwc -w filename# ⽂件⾥最长的那⼀⾏是多少个字wc -L filename# 统计字节数wc -c常⽤压缩, 解压缩命令压缩命令tar czvf xxx.tar 压缩⽬录zip -r xxx.zip 压缩⽬录解压缩命令tar zxvf xxx.tar# 解压到指定⽂件夹tar zxvf xxx.tar -C /xxx/yyy/unzip xxx.zip变更⽂件所属⽤户, ⽤户组chown eagleye.eagleye xxx.logcp, scp, mkdir#复制cp xxx.log# 复制并强制覆盖同名⽂件cp -f xxx.log# 复制⽂件夹cp -r xxx(源⽂件夹) yyy(⽬标⽂件夹)# 远程复制scp -P ssh端⼝ username@10.10.10.101:/home/username/xxx /home/xxx# 级联创建⽬录mkdir -p /xxx/yyy/zzz# 批量创建⽂件夹, 会在test,main下都创建java, resources⽂件夹mkdir -p src/{test,main}/{java,resources}⽐较两个⽂件diff -u 1.txt 2.txt⽇志输出的字节数,可以⽤作性能测试# 如果做性能测试, 可以每执⾏⼀次, 往⽇志⾥⾯输出 “.” , 这样⽇志中的字节数就是实际的性能测试运⾏的次数, 还可以看见实时速率. tail -f xxx.log | pv -bt查看, 去除特殊字符# 查看特殊字符cat -v xxx.sh# 去除特殊字符sed -i 's/^M//g’ env.sh 去除⽂件的特殊字符, ⽐如^M: 需要这样输⼊: ctrl+v+enter处理因系统原因引起的⽂件中特殊字符的问题# 可以转换为该系统下的⽂件格式cat file.sh > file.sh_bak# 先将file.sh中⽂件内容复制下来然后运⾏, 然后粘贴内容, 最后ctrl + d 保存退出cat > file1.sh# 在vim中通过如下设置⽂件编码和⽂件格式:set fileencodings=utf-8 ,然后 w (存盘)⼀下即可转化为 utf8 格式,:set fileformat=unix# 在mac下使⽤dos2unix进⾏⽂件格式化find . -name "*.sh" | xargs dos2unixtee, 重定向的同时输出到屏幕awk ‘{print $0}’ xxx.log | tee test.log检索相关grep# 反向匹配, 查找不包含xxx的内容grep -v xxx# 排除所有空⾏grep -v '^/pre># 返回结果 2,则说明第⼆⾏是空⾏grep -n “^$” 111.txt# 查询以abc开头的⾏grep -n “^abc” 111.txt# 同时列出该词语出现在⽂章的第⼏⾏grep 'xxx' -n xxx.log# 计算⼀下该字串出现的次数grep 'xxx' -c xxx.log# ⽐对的时候,不计较⼤⼩写的不同grep 'xxx' -i xxx.logawk# 以':' 为分隔符,如果第五域有user则输出该⾏awk -F ':' '{if ($5 ~ /user/) print $0}' /etc/passwd# 统计单个⽂件中某个字符(串)(中⽂⽆效)出现的次数awk -v RS='character' 'END {print --NR}' xxx.txtfind检索命令# 在⽬录下找后缀是.mysql的⽂件find /home/eagleye -name '*.mysql' -print# 会从 /usr ⽬录开始往下找,找最近3天之内存取过的⽂件。
linux负载计算方法
linux负载计算方法
在Linux系统中,负载是指系统中正在运行或者等待运行的进
程数量。
负载计算方法可以通过多种途径来进行,下面我将从多个
角度来介绍负载的计算方法。
1. 负载平均值,在Linux系统中,可以通过命令行工具查看系
统的负载平均值。
使用命令“uptime”可以显示系统的平均负载值,这个值包括1分钟、5分钟和15分钟内运行队列中的平均进程数量。
一般来说,负载平均值小于CPU核心数量比较理想,超过这个值可
能表示系统负载较重。
2. top命令,使用top命令可以查看系统的负载情况以及当前
运行的进程。
在top命令的输出中,负载情况会显示在顶部,可以
清晰地看到1分钟、5分钟和15分钟的平均负载值。
3. /proc/loadavg文件,在Linux系统中,可以通过读取
/proc/loadavg文件来获取系统的负载情况。
这个文件中包含了当
前系统的平均负载值,可以通过解析这个文件来获取系统的负载情况。
4. sar命令,sar命令是System Activity Reporter的缩写,可以用来收集、报告以及保存系统的活动信息,包括负载情况。
通过sar命令可以查看系统的平均负载以及其他系统活动信息。
总的来说,Linux系统中负载的计算方法主要包括查看负载平均值、使用top命令、读取/proc/loadavg文件以及sar命令。
这些方法可以帮助管理员全面了解系统的负载情况,及时进行调整和优化。
希望这些信息能够对你有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打开自己的CentOS,敲入“sar”,表示很失望:[root@localhost ~]# sarbash: sar: command not found竟然没有安装,不过还好linux下安装还是非常方便的。
[root@localhost ~]# yum install sysstatLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile* base: * extras: * updates: addons | 1.9 kB 00:00base | 1.1 kB 00:00 extras | 2.1 kB 00:00 updates | 1.9 kB 00:00 updates/primary_db | 255 kB 00:01 Setting up Install ProcessResolving Dependencies--> Running transaction check---> Package sysstat.i386 0:7.0.2-11.el5 set to be updated--> Finished Dependency ResolutionDependencies Resolved====================================================================== ==========Package Arch Version Repository Size====================================================================== ==========Installing:sysstat i386 7.0.2-11.el5 base 182 kTransaction Summary====================================================================== ==========Install 1 Package(s)Upgrade 0 Package(s)Total download size: 182 kIs this ok [y/N]: yDownloading Packages:sysstat-7.0.2-11.el5.i386.rpm | 182 kB 00:01Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning TransactionInstalling : sysstat 1/1Installed:sysstat.i386 0:7.0.2-11.el5Complete!注:Sar是后台进程sadc的前端显示工具,安装名为“sysstat”的包后,sadc就会自动从内核收集报告并保存。
下面对sar的一般用法进行总结,以备忘之。
sar –u 查看CPU使用率[root@localhost ~]# sar -uLinux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日09时39分42秒LINUX RESTART09时40分01秒CPU %user %nice %system %iowait %steal %idle09时50分01秒all 0.14 0.00 0.58 0.12 0.00 99.1510时00分01秒all 0.06 0.00 0.50 0.16 0.00 99.2710时10分01秒all 0.11 0.06 0.95 2.58 0.00 96.3010时20分01秒all 0.12 0.19 0.82 1.41 0.00 97.4610时30分01秒all 0.14 0.00 0.54 0.12 0.00 99.2010时40分01秒all 0.15 0.00 0.54 0.16 0.00 99.15Average: all 0.12 0.04 0.65 0.76 0.00 98.43这里:%user :用户模式下消耗的CPU时间的比例;%nice:通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例;%system:系统模式下消耗的CPU时间的比例;%iowait:CPU等待磁盘I/O而导致空闲状态消耗时间的比例;%steal:利用Xen等操作系统虚拟化技术时,等待其他虚拟CPU计算占用的时间比例;%idle:CPU没有等待磁盘I/O等的空闲状态消耗的时间比例;注:如果%iowait 的值过高,表示硬盘存在I/O瓶颈如果%idle 的值高但系统响应慢时,有可能是CPU 等待分配内存,此时应加大内存容量如果%idle 的值持续低于10,则系统的CPU 处理能力相对较低,表明系统中最需要解决的资源是CPU。
sar –q 查看平均负荷[root@localhost ~]# sar -qLinux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日09时39分42秒LINUX RESTART09时40分01秒runq-sz plist-sz ldavg-1 ldavg-5 ldavg-1509时50分01秒0 152 0.00 0.02 0.0510时00分01秒0 152 0.00 0.00 0.0010时10分01秒0 156 0.39 0.09 0.0310时20分01秒0 151 0.00 0.03 0.0110时30分01秒0 151 0.00 0.00 0.0010时40分01秒0 151 0.00 0.00 0.0010时50分01秒0 151 0.00 0.00 0.00Average: 0 152 0.06 0.02 0.01runq-sz:运行队列的长度(等待运行的进程数)plist-sz:进程列表中进程(processes)和线程(threads)的数量ldavg-1:最后1分钟的系统平均负载(System load average)ldavg-5:过去5分钟的系统平均负载ldavg-15:过去15分钟的系统平均负载sar –r 查看内存使用情况[root@localhost ~]# sar -rLinux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日09时39分42秒LINUX RESTART09时40分01秒kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad09时50分01秒481572 553492 53.47 35592 384508 2097144 0 0.00 010时00分01秒480960 554104 53.53 36032 384512 2097144 0 0.00 010时10分01秒404952 630112 60.88 77764 399432 2097144 0 0.00 010时20分01秒375824 659240 63.69 87356 410892 2097144 0 0.00 010时30分01秒371860 663204 64.07 87756 411064 2097144 0 0.00 0…kbmemfree:空闲物理内存量;kbmemused:使用中的物理内存量;%memused:物理内存量使用率;kbbuffers:内核中作为缓冲区使用的物理内存容量;kbcacheed:内核中作为缓存使用的物理内存容量;kbswpfree:交换区的空闲容量;kbswpused:使用中的交换区容量;sar –W 查看页面交换发生状况[root@localhost ~]# sar -W14时30分01秒pswpin/s pswpout/s14时40分01秒0.00 0.0014时50分01秒0.00 0.0015时00分01秒0.00 0.00Average: 0.00 0.00…sar –b 查看I/O和传送速率的统计信息[root@localhost ~]# sar -b 1 5Linux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日15时08分18秒tps rtps wtps bread/s bwrtn/s15时08分19秒0.00 0.00 0.00 0.00 0.0015时08分20秒0.00 0.00 0.00 0.00 0.0015时08分21秒0.00 0.00 0.00 0.00 0.0015时08分22秒13.27 0.00 13.27 0.00 220.4115时08分23秒0.00 0.00 0.00 0.00 0.00Average: 2.66 0.00 2.66 0.00 44.17tps:每秒钟物理设备的I/O 传输总量rtps: 每秒钟从物理设备读入的数据总量wtps: 每秒钟向物理设备写入的数据总量bread/s: 每秒钟从物理设备读入的数据量,单位为块/sbwrtn/s: 每秒钟向物理设备写入的数据量,单位为块/s其他还有:sar –c 每秒钟创建的进程数sar -n DEV 输出网络设备状态的统计信息注:默认情况是对过去时间段进行数据统计,一般从最近的0:00开始显示。
如果想继续查看一天前的报告,可以用-f选项指定保存在/var/log/sa目录下的日志文件中。
如果想周期性的查看当前数据可以命令后面加上数字参数,如sar –q 1 3 ,表示:1秒1次,共3次。
要判断系统瓶颈问题,有时需几个sar 命令选项结合起来怀疑CPU存在瓶颈,可用sar -u 和sar -q 等来查看怀疑内存存在瓶颈,可用sar -B、sar -r 和sar -W 等来查看怀疑I/O存在瓶颈,可用sar -b、sar -u 和sar -d 等来查看。