每天学习一些关于测试的知识,5分钟说明你最关心的软件测试问题。今天,让我们来谈谈软件测试中的“系统资源监控(window与类unix)”。。
系统资源监控通常分为两类系统:window unix(类unix系统(unix,linux,aix)。
window系统资源监控
在window中监控系统资源有两种方式:一种是使用loadrunner工具进行监控;第二种是使用perfmon,这是windows自带的一个性能工具,用于监视。
一、使用LoadRunner工具进行监控
使用LoadRunner监视windows系统资源的步骤如下:
1.创建一个新的控制器场景。2.切换到运行选项卡。3.找到窗口资源视图。4.右键单击-添加测量。5.在弹出的对话框中,windows resources6。6.在“受监控的服务器”框中,单击“添加”按钮7。在弹出的添加机器对话框中,在名称文件框中输入被监控服务器的IP地址,在平台下拉框中选择被监控服务器的类型。8.点击确定按钮,直接获取监控数据。实际上,loadrunner不可能通过windows操作系统自带的性能监控工具perfmon间接获取系统资源。
perfmon工具位于c盘C:\WINDOWS\system32的路径下,所以如果loadrunner可以获取这些数据,它就必须有访问c盘的能力。
测试是否具有访问C盘的权限命令如下:
\\ip\c$
例如:
\\127.0.0.1\c美元
二、perfmon工具监控
Perfmon是windows自带的监控工具,不需要在windows下使用第三方监控工具。只有这个监控工具就够了。
Permon监控步骤如下:
1.进入控制面板-管理工具2。找到性能监视器3。在用户定义下创建数据收集器类UNIX系统资源监控。
不管是什么类型的操作系统,它的监控主要是监控cpu、内存和io。
一、程序执行的模型
二、CPU
运行状态:表示正在执行的线程。就绪状态:准备线程运行,等待当前正在运行的线程运行完毕,然后就绪状态的线程将开始运行。等待状态:等待就绪的线程。在运行状态下可以执行的最大线程数是固定的。如果有很多线程处于就绪状态,运行无法处理,所以我们必须排队。队列越多,服务器处理速度越慢。
CPU在处理这些线程的时候,会为每个线程准备一个时间片,也就是固定长度的时间。如果在这个时间片内执行没有完成,那么CPU将自动中断并放弃这个时间片用于其他任务。
所谓CPU资源消耗,其实是指CPU使用率的百分比,所谓百分比是指CPU的工作时间占整个时间的百分比。百分比值越大,CPU越忙,从而说明我们的CPU不够用。
CPU的常用监控工具:
1.vmstat
vmstat时间计数
诸如
vmstat 3 5
-r:队列长度,表示有多少任务处于就绪状态。如果该值较大,则表明服务器较忙。队列可以直接表明cpu是否处于瓶颈状态。队列长度应该小于或等于CPU数量乘以核心数量。-us:用户进程或任务消耗的CPU资源,即用户生成的任务消耗的CPU资源-sy3360系统进程或任务消耗的CPU资源是正常的。我们预计消耗的CPU资源总量不应超过85% -id:表示CPU空闲的百分比,一般不低于15%-wa:表示I/O或NFS加载到挂起的磁盘上时消耗的CPU时间百分比。如果这个值超过25%,我们认为磁盘不平衡。2 .顶端
top -d时间
诸如
top -d 10
Top tool可以分析CPU消耗,并且会消耗每个进程。
的CPU进行排序,这样子可以解决一个问题,就是我们知道哪些进程消耗的CPU值最多。3.iostat
iostat time count
如
iostat 10 20
这里显示处理暂挂磁盘所消耗的CPU资源
4.ps
ps -ef
显示所有进程消耗资源的情况
ps au
当前用户下消耗CPU资源情况
查后台进程所消耗的情况
5.sar
sar是一个统计命令,用于统计CPU资源,并生成报告
sar -u time count
//表示单用户模式下CPU消耗的资源的统计报告
sar -P ALL time count
//显示所有CPU消耗的情况
关于分析CPU是否到达瓶颈的指标如下:
1.队列长度直观的反应CPU是否存在瓶颈 2.CPU的使用率,建议阀值一般不超过85% 3.热密集应用程序,找出消耗CPU资源最多的进程 4.wa的值建议阀值不超过25%,否则表示磁盘不平衡 三、memory
所以程序运行时所需要的数据,一般都是消耗的是内存的资源,但我们看到的内存叫实内存,在实际使用过程上,系统并不会将整个我们所谓内存条拿去直接使用,而有一个专门管理它的程序或机制,这个叫做虚拟内存管理器VMM。
在操作系统运行程序,程序并不是将整个物理内存拿去使用,而由VMM来操作它怎么使用,VMM会将实内存分成固定的一些大小的空间,我们把这种空间称之为页,页的大小一般为4KB、8KB、4MB等。
程序在运行时,会将程序分成两种段:一是持久段;二是工作段。
持久段是指一种存在的东西 ,一般是我们说可执行程序。持久段是存放在磁盘中。为了解决程序在运行过程中可能存在的缺页问题,我们磁盘中会一个调页空间,调页空间是如何调用页的是由调页算法来实现的。
工作段是工作过程中使用的东西 ,工作段一般包括类似像数据段和堆栈等。工作段只有在工作时才存在,如果程序完成之后,这个工件段就不存在。
内存为了更好管理内存,VMM中会有一个PFT页面桢表,所以在程序运行过程中会就会出PI和PO两个指标,用于表示对调页空调的使用情况。
空闲列表中页面帧的数量受下瑞两个参数控制:
minfree: --->空闲列表中可接受的实内存页面帧的最小数量,当空闲列表的大小低于这个数时,VMM开始替换页面,它持续窃取页面,直到空闲列表的大小达到maxfree。
maxfree: --->通过VMM页面替换空闲列表可达到的最大大小,当进程终止并释放它们的工作段页面或删除其页面在内存中的文件时,结果是空闲列表的大小可能会超过这个数。
内存监控常用工具:
1.free
total:总的内存数,是指总的物理内存数,即RAM的大小。 used:表示已使用的内存,所以有一个叫内存使用率的说法,一般不建议使用率超过85%,但是有一些操作当程序在工作时,会将所有的内存都吞入使用,但其实真实情况下并没有使用这么多内存。 free:表示空闲的内存数 swap表示交换分区,正常情况下swap使用的值为零,只有当RAM不够的时候,我们才会调用swap的内存,也就是说如果你看到swap中,使用的值不为零,那么就说明RAM不够用。
2.vmstat
显示内存的统计摘要信息 pi(pages paged in):表示从调页空间调入到内存,调页空间是一个存储在磁盘中一个虚拟内容,pi是衡量调页 空间的一个关键标示。 po(pages paged out):表示从内存写入调页空间的值,如果出现仍驻留调页空间或已修改的,那么还是保留在调页空间,直到程序运行结束或终止。
pi和po的值是不确定的,但是pi和po的值正常情况下是不可能为零,如果在不断的并过程中,我们发现pi和po一直为零,就说操作系统的内存存在问题。
正常情况下pi在增大的时候,po也会增大而非为零或一直不变。
3.ps v或ps -aux
显示每个进程所消耗的资源
%MEM:表示该进程所消耗的内存百分比 RSS:表示该进程所消耗的内存大小,单为KB DRS:表示可执行程序映射大小 4.vmstat -s
统计内存消耗值的情况,主要包括实内存的使用、swap的使用、pi、po
CPU context switches:表示CPU时钟频率被切换的次数,当这个值很大说明CPU会任务频繁的调用并切换。 关于内存监控的主要指标:
--->内存的使用率,一般阀值不超过85%,但即使超过85%也不能完全判断内存是不够用的
--->swap的使用,一般swap的使用都为零,如果大于零,说明RAM不够
--->pi与po的值,如果pi和po的值一直很小或者为0说明内存有问题
--->监控每个进程所消耗的内存值
--->RSS显示为每个进程所消耗的实内存
--->CPU上下文切换次数
四、IO
对于类unix来说,我们通常说操作系统为文件操作系统,其主要的原因是在划分或使用硬盘时类unix与windows有着截然不一样的方式,所以在类unix中我们会说C盘、D盘的概念。
一个物理硬盘,通常可以分为多个卷组,给我们的直观理解就是分为了多个盘,每个卷组分对分划分出一个物理卷,每个物理卷可以分出多个逻辑卷,每个逻辑卷下面挂载我们不同的文件系统,文件系统下面存放着是文件。
不同的操作系统还会对物理卷大小进行分配,分配的大小是固定,可能4MB或8MB等。
磁盘存储数据都永久段的数据,在程序运行时,调页空间会将磁盘的永久段的信息调入到内存使用,即通过VMM来调用我们要的数据,就我们通常说主调页空间工作的原理。
一般来我们看到的文件是顺序,但实际上我们运行我们的文件不定是顺序的,如果不是顺序则说明我们的文件是零碎的,那么如果访问的是零碎的文件,这样会大大增加我们寻道的时间。碎片率越高说明性能就越差。
IO监控命令:
1.iostat
iostat time count
例如:
iostat 5 10
avg-cpu:统计而磁盘操作引起的CPU资源消耗的平均数据。 %iowait:暂挂磁盘所消耗的CPU的值,一般不超过25%,如果超过25%说明磁盘有问题。 Blk_read/s:每秒从磁盘中读的字节数 Blk_wrtn/s:每秒写入磁盘中的字节数 Blk_read:总从磁盘中读的字节数 Blk_wrtn:总的写入磁盘的字节数 tps:每秒传输的次数,即我们说的每秒处理的IO请求数,但是每个请求有多少字节数是不确定。 分析磁盘是否均衡:通过分析每个磁盘的读写数度来分析磁盘是否平衡。如果我们服务器有多个磁盘,那么需要比较每个磁盘的读写字节数,如果磁盘读写数字的值差距很明显,那么说明磁盘不均衡,所谓的不均衡是指我们访问磁盘读写的内容没有平均的分配到所有的磁盘中。 2.sar
sar -d time count
例如
sar -d 5 10 123
avgrq-sz:平均队列长度,未完成的任务排队的长度,如果平均队列长度越大,说明磁盘遇到瓶颈。 %tm_act:表示磁盘活动时间百分比,即磁盘在活动时所占的百分比时间,也可以理解磁盘带宽的利用率,如果这个值超过70%,我们磁盘是存在瓶颈的。因为%tm_act这个值越大,说不进程等待的时间长度会超过IO本身处理的时间。 关于IO监控的几个方面:
1.wa或%iowait的值不超过25%,如果超过表示磁盘存在问题
2.磁盘是否处于平衡状态
3.tps每秒传输次数
4.%tm_act的值建议不超过70%
5.avgrq-sz磁盘的队列长度
6.碎片率不能太高
nmon
nmon是IBM的一个开源第三方监控的工具,由两部分组成:一是nmon监控;二是nmon结果分析。
将nmon的工具上传到需要监控服务上,准确的说这个工具是不用安装,只要修改权限即可。
chmod 777 nmon
运行nmon 、
https://www.sunbala.cn/new/nmon
nmon工作原理
使用nmon记录文件有两种方式:一是界面数据显示;二是记录在文件中。
记录在文件中的步骤如下:
1.输入需要监控的命令
nmon < -f | -F filename | -x | -X | -z > < -r < runname > > < -t | -T | -Y >
< -s seconds > < -c number > < -w number > < -l dpl > < -d > <-g filename > <-k disklist > < -C > < -G > < -K > < -o outputpath > < -D > < -E > < -J > < -V > < -P > < -M > < -N > < -W > < -S > <-^ > < -O > < -L > < -I percent > < -A > < -m < dir > > < -Z priority >
通常使用的命令格式如下:
https://www.sunbala.cn/new/nmon -f -r test -s 10 -c 20
-f:表示记录成文件
-r:表示运行本次监控的名称
-s:采样时间间隔
-c:采样点的次数
2.将nmon文件转换成csv文件
sort ***.nmon > ***.csv
3.使用分析工具对生成的csv文件进行分析
今天关于“系统资源监控(window与类unix)”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!