Jmeter(二十二)硬件性能监控指标
硬件性能监控指标
一、性能监控初步介绍
性能测试的主要目标
1。在当前的服务器配置情况,最大的用户数
2。平均响应时间ART,找出时间较长的业务
3。每秒事务数TPS,服务器的处理能力
性能测试涉及的内容
1。客户端性能测试:web前端性能、app性能
2。网络性能测试
3。服务器应用程序性能
4。服务器硬件性能
5。数据库的性能
二、linux性能监控CPU
CPU相关的指标
1。CPU使用率:sysuser(系统的cpu使用率和用户的cpu使用率)
2。队列长度
1。查看CPU使用率
使用vmstat或top查看CPU使用情况us和sy
标准:cpu使用率:ussy不能超过75,偶尔可以100
vmstat5:每5秒采集一次
编辑
vmstat主要参数说明
r表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。b表示阻塞的进程,这个不多说,进程阻塞,大家懂的swpd虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。free空闲的物理内存的大buffLinuxUnix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多Mcachecache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是LinuxUnix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffercached会很快地被使用。)si每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。so每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。bi块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(23T)的机器上看过可以达到140000s,磁盘写入速度差不多140M每秒bo块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。in每秒CPU的中断次数,包括时间中断。cs每秒上下文切换次数,上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。us用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。sy系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。id空闲CPU时间,一般来说,idussy100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。wt等待IOCPU时间。
2。查看队列长度
使用vmstat5执行,查看r列的数据
标准:队列长度不能超过2,有队列的产生,或者CPU处理不过来
r值2
r值在〔3,5〕
r值在(5,10〕
r值在10
编辑
3。查看CPU使用较大的进程
psaux查看进程的CPU使用情况
目的:找出高CPU的进程
psauxwhead1;psauxwsortrnk3head1(查看CPU使用较大的前10个进程)
编辑
三、linux性能监控内存
核心指标
1。可用物理内存的比例
2。是否使用了虚拟内存
3。是否存在内存泄漏
1。查看物理内存的使用情况
free命令查看使用情况
编辑
标准:linux的可用物理内存可为0,全部用完,只要不使用虚拟内存
2。查看是否使用了虚拟内存
方法1:vmstat查看siso列
标准:si和so大于0,表示物理内存不够用或者内存泄露了
编辑
方法2:sarW103(10和3代表了每个10秒监控一次,总共监控3次)
标准:值大于0,就说明内存已经饱和了
编辑
pswpins:每秒系统换入的交换页面(swappage)数量
pswpouts:每秒系统换出的交换页面(swappage)数量
3。找出高内存使用的进程
3。1内存消耗最多的前10个进程
psauxwhead1;psauxwsortrnk4head10
3。2虚拟内存使用最多的前10个进程
psauxwhead1;psauxwsortrnk5head
MEM进程的内存占用率
VSZ进程所使用的虚存的大小
RSS进程使用的驻留集大小或者是实际内存的大小
四、linux性能监控硬盘IO的监控
核心指标
1。硬盘的使用率
2。物理硬盘驱动器忙于读或写入的时间
工具:iostat、iotop、ptioprofile
1。查看硬盘的使用率:dflh
编辑
2。查看具体的那个硬盘的IO较高:
使用iostat工具来查
ostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息
安装iostat安装命令:yuminstallsysstat
编辑
语法:iostat〔c〕〔d〕〔h〕〔N〕〔km〕〔t〕〔V〕〔x〕〔z〕〔device
〔。。。〕ALL〕〔p〔device〔,。。。〕ALL〕〕〔interval〔count〕〕
c显示CPU使用情况
d显示磁盘使用情况
k以K为单位显示
m以M为单位显示
N显示磁盘阵列(LVM)信息
n显示NFS使用情况
p可以报告出每块磁盘的每个分区的使用情况
t显示终端和CPU的信息x显示详细信息
iostatdk2
参数d表示,显示设备(磁盘)使用状态;k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
编辑
iostatx5查看:util
编辑
util:一秒中有百分之多少的时间用于IO操作,或者说一秒中有多少时间IO队列是非空的。即delta(use)s1000(因为use的单位为毫秒);
如果util接近100,说明产生的IO请求太多,IO系统已经满负荷,该磁盘可能存在瓶颈。
标准:物理硬盘驱动器忙于读或写入的时间406080
3。查看哪个进程耗IO比较高
使用iotop命令:查询出较大的IO的进程
iotop是一个用来监视磁盘IO使用状况的top类工具,可监测到哪一个程序使用的磁盘IO的信息
安装:yuminstalliotop
查看:iotop按o只显示有磁盘IO活动的进程
编辑
语法:iotop〔OPTIONS〕
version显示版本号h,help显示帮助信息o,only显示进程或者线程实际上正在做的IO,而不是全部的,可以随时切换按ob,batch运行在非交互式的模式nNUM,iterNUM在非交互式模式下,设置显示的次数,dSEC,delaySEC设置显示的间隔秒数,支持非整数值pPID,pidPID只显示指定PID的信息uUSER,userUSER显示指定的用户的进程的信息P,processes只显示进程,一般为显示所有的线程a,accumulated显示从iotop启动后每个线程完成了的IO总数k,kilobytes以千字节显示t,time在每一行前添加一个当前的时间
4。定位来源文件
ptioprofile定位负载来源文件,通过iotop或ps找出负载较高的进程
安装:下载地址https:www。percona。comdownloadsperconatoolkitLATEST
CentOS7下安装:
yumyinstallhttps:www。percona。comdownloadsperconatoolkit3。0。1binaryredhat7x8664perconatoolkit3。0。11。el7。x8664。rpm
使用:
命令格式:ptioprofileprofilepidxxx
ptioprofileprofilepidxxxcellsize
ptioprofileprofilepid需要监控的PIDcellsize
ptioprofile的原理是对某个pid附加一个strace进程进行IO分析。
步骤1:iotop查询出高io的pid
步骤2:ptioprofileprofilepid需要监控的PIDcellsize
对于定位问题更有用的是通过IO的吞吐量来进行定位。
使用参数cellsizes,该参数将结果已Bs的方式展示出来
ptioprofileprofilepid需要监控的PIDcellsizes
五、linux性能监控网络监控
网络的监测是所有Linux子系统里面最复杂的,有太多的因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与Linux主机相连的路由器、交换机、无线信号都会影响到整体网络并且很难判断是因为Linux网络子系统的问题还是别的设备的问题,增加了监测和判断的复杂度。
核心指标
1。网络带宽是否够用
2。丢包率、错误重传
3。网络延迟堵塞
4。网络错误
监控网络操作步骤
1。查每秒接受和发送的数据量,检查当前带宽是否够用
使用nicstat工具查看网卡的利用率
nicstat可以提供更加全面的网卡信息。
显示TCP流量统计显示UDP流量统计报告进出网卡的字节数报告进出网卡的数据数报告网卡利用率报告NIC饱和度和其他信息
nicstat下载
cdusrlocalsrc
wgethttp:nchc。dl。sourceforge。netprojectnicstatnicstat1。92。tar。gz
nicstat安装
tarxzfnicstat1。92。tar。gz
cdnicstat1。92
cpMakefile。LinuxMakefile
make
nicstat使用
。nicstat。sh
编辑
Time列:表示当前采样的响应时间
loandeth0:网卡名称。
rKBs:每秒接收到千字节数。
wKBs:每秒写的千字节数。
rPks:每秒接收到的数据包数目。
wPks:每秒写的数据包数目。
rAvs:接收到的数据包平均大小。
wAvs:传输的数据包平均大小。
Util:网卡利用率(百分比)。
Sat:网卡每秒的错误数。网卡是否接近饱满的一个指标。尝试去诊断网络问题的时候,推荐使用x选项去查看更多的统计信息。
。nicstat。sht用于查看tcp信息
编辑
InKB:表示每秒接收到的千字节
OutKB:表示每秒传输的千字节
InSeg:表示每秒接收到的TCP数据段(TCPSegments)
OutSeg:表示每秒传输的TCP数据段(TCPSegments)
Reset:表示TCP连接从ESTABLISHED或CLOSEWAIT状态直接转变为CLOSED状态的次数
AttF:表示TCP连接从SYNSENT或SYNRCVD状态直接转变为CLOSED状态的次数,再加上TCP连接从SYNRCVD状态直接转变为LISTEN状态的次数
ReTX:表示TCP数据段(TCPSegments)重传的百分比。即传输的TCP数据段包含有一个或多个之前传输的八位字节
InConn:表示TCP连接从LISTEN状态直接转变为SYNRCVD状态的次数
OutCon:表示TCP连接从CLOSED状态直接转变为SYNSENT状态的次数
Drops:表示从完成连接(completedconnection)的队列和未完成连接(incompleteconnection)的队列中丢弃的连接次数
。nicstat。shu用于查看UDP信息
编辑
InDG:每秒接收到的UDP数据报(UDPDatagrams)
OutDG:每秒传输的UDP数据报(UDPDatagrams)
InErr:接收到的因包含错误而不能被处理的数据包
OutErr:因错误而不能成功传输的数据包
。nicstat。shx查看扩展信息
。nicstat。sha等同于执行tux
2。丢包率、错误重传
查看丢包方法1:使用ifconfig,查看dropped是否有计数,有计数的话存在丢包的情况
编辑
查看丢包方法2:sarnEDEV查看rxdrops
当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
编辑
查看丢包的方法3:网络延迟:pingc次数服务器IP或域名查看packetlos
例如:pingc100www。baidu。com
编辑
错误重传:。nicstat。sht查看ReTX:TCP报文重传率
标准:1
编辑
3。网络延迟
网络延迟:pingc次数服务器IP或域名
标准:avg100ms
例如:pingc100www。baidu。com
编辑
4。网络错误
方法1:sarnEDEV查看:txerrs每秒钟发送的数据包错误数
编辑
方法2:ifconfig出现:errors
编辑
标准:不能出现错误
编辑
重点:学习资料
600g的学习资料懂的都懂
编辑
编辑