linux_性能密令诊断
操作系统类型 | 监控的资源 | 命令 | 命令说明 | 参数说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Linux | CPU | sar -P ALL 2 0 > CPU.txt | "2"表示时间间隔为2s,"0"表示收集总次数,如果为0则表示无限次,如果>0则在执行完指定的次数后自动退出;后面的">"符号表示把数据输出到CPU.txt文件,测试后完成后,我们对CPU.txt文件进行分析即可 | 该命令会显示总的CPU占用情况和每单个CPU的占用情况,标识"all"的表示总的CPU占用情况,表示数字的如"1""2"等表示各个单独CPU的占用情况;一般来说: 1、如果%user值高,说明是用户占用高,一般就是我们的业务占用了CPU时间,只要CPU值与业务CAPS成线形增长就是正常现象 2、%system表示系统本身调度使用的CPU时间,一般该值都低于5%,当该值过高时,可能是由于业务线程过多,导致业务频繁切换,可以通过"sar -w 1 10"查询上下文切换情况 3、%iowait表示CPU等待磁盘IO处理的时间,一般该值低于5%,如果该值过高,表明磁盘已经存在瓶颈,可综合下面的磁盘监控命令确认。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Network | sar -n DEV 2 0 > NET.txt | "2"表示时间间隔为2s,"0"表示收集总次数,如果为0则表示无限次,如果>0则在执行完指定的次数后自动退出;后面的">"符号表示把数据输出到NET.txt文件,测试后完成后,我们对NET.txt文件进行分析即可 | 1、IFACE表明监控网口,对应一个网卡,可通过"netstat -rn"查看网口对应的IP 2、rxpck/s txpck/s分别代表每秒收发的包,r代表接手的,t代表发送的 3、rxbyt/s txbyt/s分别代表每秒收发的字节数,该字段使用Byte(字节)作为计量单位,而我们一般说的网络10M网络或者100M网络是以bit作为单位,因而换算的时候,需要用rxbyt/s txbyt/s乘以8来进行对比(一个字节byte等于8bit) 4、后两项可以不同关注 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MEMORY | sar -r 2 0 > MEM.txt | "2"表示时间间隔为2s,"0"表示收集总次数,如果为0则表示无限次,如果>0则在执行完指定的次数后自动退出;后面的">"符号表示把数据输出到MEM.txt文件,测试后完成后,我们对MEM.txt文件进行分析即可 | 1、kbmemfree,当前空余内存 2、kbmemused,系统已经使用的内存,该值包括了系统用来作为cache部分的内存。由于Linux系统一般作为服务器使用,Linux系统会把大部分的空余内存都使用起来用于缓存数据,只有当内存不够,而用户需要使用时才释放该内存给应用程序使用,该部分内存以kbcached值表示出来。 3、 3、kbmemfree+kbbuffers+kbcached,这三个值相加获取的结果才是系统真正空闲、可供使用的内存。 4、kbswpused表示已经使用的交换分区大小。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO | iostat -x sdc sdd sde -d -t 2 > IO.txt | "-x"表示显示详细的信息,"sdc/sdd/sde"表示只监视sdc/sdd/sde这3块磁盘,不监视其他磁盘的IO情况,"-t 2“表示监视时间间隔为2s | 1、rrqm/s wrqm/s代表每秒merge(合并的)读写请求,合并发生的情况是当读写请求在主机侧排队的时候,SCSI协议会把多个请求进行合并成一个请求发送到阵列,一般我们不用太关注这两个值 2、r/s w/s表示每秒主机发送给磁盘的读写请求,也就是我们一般所说的IOPS,测试数据库时需要关注这两个值是否达到磁盘阵列极限 3、rsec/s wsec/s,每秒读写的块,在Linux中,一个sector(块)的大小为512byte,基本上,rsec/s / 2就是rkB/s的值了,wsec/s就是wkB/s值 4、rkB/s wkB/s,每秒读写的字节,同3的说明 5、avgrq-sz表示平均输出IO的sector个数,对于数据库的数据和索引文件,一般为16(即8k字节,oracle读写块大小一般为8k字节),可以不用关注 6、avgqu-sz,平均队列长度,表示主机侧读写请求队列排队情况,如果该值比较大(>5),表示磁盘阵列已经处理不过来,请求就在主机排队了 7、await,表示请求在队列等待的时间,一般与avgqu-sz成正比 8、svctm,表示请求在磁盘完成所用的时间,是指请求从主机发送到磁盘到磁盘返回数据的时间,与await不同,await是指请求还没发送到磁盘而在主机的请求队列中排队所用的时间 9、%util,磁盘使用率,该值一般不准,不需关注。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Process | 该命令通过编写脚本实现,应用方法: 1、在linux系统中创建一个文件(如pidmonitor.sh) 2、把command中pidmonitor.sh中的内容copy到该文件中保存退出(或者直接把command中文件传送到Linux系统) 3、为该文件添加可执行权限"chmod u+x pidmonitor.sh" 4、以"./pidmonitor.sh interval count PID"的形式监控,interval表示监控间隔,count表示监控次数,PID表示进程的PID号 | 1、%cpu,指监控的这段时间内,监控进程所使用的CPU时间,该值只是代表最近时间段内业务所使用的CPU时间,所以该值可能会很高(超过90%等),整体的系统CPU占用还是需要使用"sar -u"来查看 2、%mem,指进程所占用的物理内存的比例 3、nlwp,进程中所有的线程数 4、rss,进程所使用的物理内存大小 5、sz,表示单位是page,包括了进程的文本域、数据域、和栈域的大小 6、vsz,进程的虚拟内存大小。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
统一的收集脚本 | 使用方法: 1、在Linux系统中创建一个文件(如collect.sh) 2、把Command中collect.sh的内容copy到该新建文件中,保存退出(或者直接把command中文件传送到Linux系统) 3、为collect.sh增加可执行权限"chmod u+x collect.sh" 4、在同一目录下创建一个新文件pid,注意文件名不能错,必须为pid,并且全小写 5、在pid文件中添加需要监控的USDP、RBT、VXML的用户名(如usdp、rbt等,就是启动这些业务的用户名),每个用户名占用一行,最后一行必须是用户名,不能是回车符 6、创建一个文件pidmonitor.sh,把Process中的Command脚本复制到该文件中,然后为该文件添加可执行权限。 7、新建一个收集数据的文件夹(如Data"mkdir Data") 8、使用命令"./collect.sh interval count filename directory"的方式收集所有数据,这里interval表示收集间隔,count表示收集次数,filename表示收集文件的结束部分的名字,directory表示收集数据存放的目录(如可以使用"./collect.sh 1 100 5 Data",就表示,每隔5秒,总共收集100次,每个文件以_5结尾,这里的5可以表示测试是线程数等,收集的数据存放到Data目录下) | 1、在该脚本中,有列出了上面所有的命令,可以根据自己的需要修改,把不需要收集的命令注释掉(在最前面增加"#"字符) 2、在收集磁盘命令时,需要把该脚本中的磁盘符"sdb sdc sdd”修改为实际系统中需要收集的盘符 3、AIX UNIX和HP Unix也可以使用统一的方式收集,只是需要把收集命令修改为其对应的UNIX的命令格式即可 4、该脚本中收集命令都是以后台job运行的方式启动的,在界面不会有任何输出 5、由于使用的是后台job形式,所以,调用该脚本的窗口不能关闭,否则所有其调用的job都会强行退出 6、pid文件不能以回车符结束,也就说,最后一行必须是启动业务的用户名,而不能是回车符,而且每个用户名占用一行 7、由于改脚本是针对USDP、RBT和VXML业务编写的(自动获取了业务进程的PID值),如果要监控其他的程序进程情况,请直接使用Prcoess里面的脚本(需要自己先获取程序的PID) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IBM | CPU | sar -u 2 100 > CPU.txt | "2"表示时间间隔为2s,"100"表示收集总次数,该命令表示在200s(2*100)后,命令自动退出;后面的">"符号表示把数据输出到CPU.txt文件,测试后完成后,我们对CPU.txt文件进行分析即可 | 该命令会显示总的CPU占用情况;一般来说: 1、如果%user值高,说明是用户占用高,一般就是我们的业务占用了CPU时间,只要CPU值与业务CAPS成线形增长就是正常现象 2、%system表示系统本身调度使用的CPU时间,一般该值都低于10%,当该值过高时,可能是由于业务线程过多,导致业务频繁切换,可以通过"sar -w 1 10"查询上下文切换情况 3、%iowait表示CPU等待磁盘IO处理的时间,一般该值低于5%,如果该值过高,表明磁盘已经存在瓶颈,可综合下面的磁盘监控命令确认。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO | sar -d 2 100 > IO.txt sar -b 2 100 > IO_R_W.txt | "2"表示时间间隔为2s,"100"表示收集总次数,该命令表示在200s(2*100)后,命令自动退出;后面的">"符号表示把数据输出到IO.txt文件,测试后完成后,我们对IO.txt文件进行分析即可 -d表示监视每个磁盘的IOPS,平均服务时间 -b可分别监视总的读请求和写请求数 | sar -d的输出: 1、device,表示磁盘设备 2、%busy,表示磁盘繁忙程度,该值一般不准,不需关注 3、avque,表示平均队列长度,表示主机侧读写请求队列排队情况,如果该值比较大(>5),表示磁盘阵列已经处理不过来,请求就在主机排队了 4、r+w/s,读写请求数,就是一般常说的IOPS,表示主机发送到磁盘侧的IO请求数。 5、Kbs/s,每秒读写的请求数,通过Kbs/s除以r+w/s可以得到程序读写使用的块大小。 6、avwait,表示请求在队列等待的时间,一般与avgque成正比 7、avserv,表示请求在磁盘完成所用的时间,是指请求从主机发送到磁盘到磁盘返回数据的时间,与avwait不同,avwait是指请求还没发送到磁盘而在主机的请求队列中排队所用的时间 sar -b的输出: 1、bread/s bwrit/s,每秒块读写,值按操作系统块大小每秒读入到系统缓存区的请求数,一般使用了操作系统的文件系统才会有该值出现 2、lread/s, lwrit/s,逻辑读写,值系统从缓存进行读写的请求数 3、pread/s, pwrit/s,一般像数据使用磁盘阵列的裸设备时,该值就表明了Oracle实际读写磁盘数 4、%rcache, %wcache,读写命中率,可以不用关心。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Network | 该命令通过编写脚本实现,应用方法: 1、在IBM系统中创建一个文件(如IBMNetmon.sh) 2、把command中IBMNetmon.sh的内容copy到该文件中保存退出(或者直接把command中文件传送到IBM AIX系统) 3、为该文件添加可执行权限"chmod u+x IBMNetmon.sh" 4、以"./IBMNetmon.sh interval count en0/en1"的形式监控,interval表示监控间隔,count表示监控次数,en0/en1表示网口名称,可以通过"netstat -in"查看需监视IP的网口 | 1、sendbytes/s,每秒发送字节数 2、recvbytes/s,每秒接手字节数 3、totalbytes,每秒总的收发字节数 4、avaragebytes,监视时间内平均的收发字节数 这里使用Byte(字节)作为计量单位,而我们一般说的网络10M网络或者100M网络是以bit作为单位,因而换算的时候,需要用rxbyt/s txbyt/s乘以8来进行对比(一个字节byte等于8bit),有时该值可能出现负值(具体原因还不明,如果出现负值,把数据导入到excel中重新计算平均值) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HP Unix | CPU | sar -u 2 100 > CPU.txt | "2"表示时间间隔为2s,"100"表示收集总次数,该命令表示在200s(2*100)后,命令自动退出;后面的">"符号表示把数据输出到CPU.txt文件,测试后完成后,我们对CPU.txt文件进行分析即可 | 该命令会显示总的CPU占用情况;一般来说: 1、如果%user值高,说明是用户占用高,一般就是我们的业务占用了CPU时间,只要CPU值与业务CAPS成线形增长就是正常现象 2、%system表示系统本身调度使用的CPU时间,一般该值都低于10%,当该值过高时,可能是由于业务线程过多,导致业务频繁切换,可以通过"sar -w 1 10"查询上下文切换情况 3、%iowait表示CPU等待磁盘IO处理的时间,一般该值低于5%,如果该值过高,表明磁盘已经存在瓶颈,可综合下面的磁盘监控命令确认。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO | sar -d 2 100 > IO.txt sar -b 2 100 > IO_R_W.txt | "2"表示时间间隔为2s,"100"表示收集总次数,该命令表示在200s(2*100)后,命令自动退出;后面的">"符号表示把数据输出到IO.txt文件,测试后完成后,我们对IO.txt文件进行分析即可 -d表示监视每个磁盘的IOPS,平均服务时间 -b可分别监视总的读请求和写请求数 | sar -d的输出: 1、device,表示磁盘设备 2、%busy,表示磁盘繁忙程度,该值一般不准,不需关注 3、avque,表示平均队列长度,表示主机侧读写请求队列排队情况,如果该值比较大(>5),表示磁盘阵列已经处理不过来,请求就在主机排队了 4、r+w/s,读写请求数,就是一般常说的IOPS,表示主机发送到磁盘侧的IO请求数。 5、Kbs/s,每秒读写的请求数,通过Kbs/s除以r+w/s可以得到程序读写使用的块大小。 6、avwait,表示请求在队列等待的时间,一般与avgqu-成正比 7、avserv,表示请求在磁盘完成所用的时间,是指请求从主机发送到磁盘到磁盘返回数据的时间,与avwait不同,avwait是指请求还没发送到磁盘而在主机的请求队列中排队所用的时间 相关阅读:
TAG: Linux 标题搜索日历
数据统计
清空Cookie - 联系我们 - 51Testing软件测试网 - 交流论坛 - 空间列表 - 站点存档 - 升级自己的空间
Powered by 51Testing
© 2003-2021
|