1 引言
1.1 编写目的
本文档主要目标是规范使用性能测试过程中需监控的各项技术指标,描述各指标项的具体含义,并给出相应的监控工具与方法说明。本文档将作为测试监控的指导性规范,用以选取监控关注指标,使用监控工具。
1.2 适用对象和范围
监控指标及监控工具适用于使用性能测试进行性能测试项目技术质量评价依据。 预期读者为测试管理人员、测试实施人员、技术支持人员、项目质量管理人员、项目管理人员等系统技术质量相关人员。
1.3 参考文档
相关的指标定义及解释可以参照:性能测试指标,本章可能会增加及减少相关指标的描述,并不与性能测试指标中相关指标冲突。
2 业务指标监控
2.1 监控指标
业务指标主要包括并发用户数、响应时间、处理能力,成功率这四个指标,目前大部分压测工具都能将这些指标放在压测工具里面。
2.2 监控工具
2.2.1 性能测试
性能测试分布式压测工具,将相关业务指标集成在平台上。
2.2.2 后台日志
通过后台日志log,采用分析工具也可进行分析得出TPS,响应时间等。
3 操作系统指标监控
3.1 Linux
3.1.1 监控指标说明
指标类型指标名称指标描述
CPU
CPU utilization
CPU 的使用时间百分比
System mode CPU utilization
在系统模式下使用 CPU 的时间百分比
User mode CPU utilization
在用户模式下使用 CPU 的时间百分比
Memory
Page-in rate
每秒钟读入到物理内存中的页数
Page-out rate
每秒钟写入页面文件和从物理内存中删除的页数
Paging rate
每秒钟读入物理内存或写入页面文件的页数
Disk
Disk rate
磁盘传输速率
3.1.2 监控工具
3.1.2.1 性能测试
性能测试压测工具监控操作系统指标主要有:
CPU%:所有CPU资源利用率
网络流量:每秒入网出网多少Kb
磁盘:每秒读写多少Kb
3.1.2.2 命令
Linux提供丰富的命令进行监控,针对CPU、Memory、I/O等有一些列命令及参数进行监控。具体如下:
top : 整体查看资源情况。
sar :CPU资源消耗
vmstat:内存相关消耗
iostat: 磁盘相关消耗
………
具体用法和参数,可以参照联机帮助(man top等)。
3.1.2.3 Shell
可以将以上命令通过shell来包装,每隔多少秒监控一次,总共监控多少次,将监控结果写到文件里面。
例如:下面shell就是将CPU Load每隔3秒写到文件里面。
while true ; do uptime | awk -F' average: ' '{print $2}' ;sleep 3;done >> `hostname`_`date +%Y%m%d_%H%M`.uptime
3.1.2.4 nmon
Nmon安装 将 nmonXXX.tar.gz 文件复制到计算机。如果使用 FTP,请记住使用二进制模式。
解压该文件,运行 gzip -d nmonXXX.tar.gz
提取该文件,运行tar xvf nmonXXX.tar
Nmon实时监控 登陆要监控的系统,进入nmon安装目录中
输入命令nmon,运行 nmon(如root用户可能需要输入./nmon).显示的起始屏幕及CPU等信息。如图:
依次按c,m,d即可显示CPU,内存,磁盘等信息。如图:
Nmon运行时的键盘命令
命令说明
c
提供关于物理CPU使用的详细信息
m
提供内存使用的详细信息:系统(内核)和进程,活动虚拟内存
d
提供关于磁盘,磁盘类型大小,可用空间,卷组,适配器等更详细的信息
t
当前进程详细情
P
Paging space 使用情况
k
显示内核信息
+
Nmon 结果保存为文件
Nmon 结果保存为文件 nmon -f -s 60 -c 30(每60s收集一次数据,共收集30次) nmon.sh 赋执行权限:chmod +x nmon.sh 执行nmon.sh 即可运行.
3.2 Windows
3.2.1 监控指标说明
提供的监控指标比较丰富,包括CPU、内存、网络、磁盘以及每个进程的资源。
3.2.2 监控工具
3.2.2.1 性能测试
同3.1.2.1 性能测试
3.2.2.2 资源管理器
Windows操作系统自带的windows资源管理器,在任务栏里面点击右键,启动任务管理器:
点击性能面板,再点击资源监视器:
3.2.2.3 性能监视器
Windows有自带的性能监视器,可以指定相关的监控指标进行监控,将结果保存为文件,从windows控制面板->管理工具->性能监视器->新建数据搜集器,添加你感兴趣的指标计数器。
4 应用中间件指标监控
4.1 Tomcat
4.1.1 监控指标说明
Tomcat主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。
4.1.2 监控工具
4.1.2.1 Tomcat提供的manager
通过使用Applications Manager(又称opManager)来进行监控。
使用这种方式,所监控Tomcat必须运行manager应用,缺省情况下,该应用总是运行在服务器中的。
增加Manager Role: 访问manager应用的用户的角色权限必须是 manager. 修改/conf目录下的tomcat-users.xml文件,在节点下添加一个user节点,即可创建一个用户。Tomcat版本不同配置也有差异,5.x和6.x创建的用户角色应为manager,7.x创建的用户角色为manager-jmx,举例如下:
在5.x和6.x中创建一个manager角色的用户,用户名为admin,密码为chenfeng:
在7.x中创建一个manager角色的用户,用户名为admin,密码为xxxxx: 修改配置后,需要重新启动 Tomcat 服务器。连接manager时将用户名/密码指定为admin/xxxxxxxx
4.1.2.2 Probe
解压缩后,把probe.war放到TOMCAT的webapps下,设置server.xml 的context
设置用户如下,在tomcat_user.xml中
vi /usr/local/tomcat/conf//tomcat-users.xml
设置环境变量,获取服务器状态 # vi /etc/profile JAVA_OPTS=-Dcom.sun.management.jmxremote export JAVA_OPTS
重启动服务器
输入http://localhost/probe/,输入用户名和密码 即可进入,这里比较精彩的是对内存的监视,动态显示了JVM的内存图表
4.1.2.3 JConsole
Linux系统下,需要修改 tomcat主目录\bin\ catalina.sh文件 增加一行 CATALINA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=218.28.198.188 -Dcom.sun.management.jmxremote.port=9527 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" 然后使用JConsole就可以监控Tomcat。 点击%JAVA_HOME%\bin下的jconsole.exe即可
4.1.2.4 JProfile
安装 首先到http://www.ej-technologies.com/download/overview.html 上下载 linux 和 windows版本的安装文件. 将 linux版本的文件(jprofiler_linux_7_0_1.sh),上传到服务器上, 将其安装。 安装命令: sh jprofile_linux_7_0_1.sh –c 即可。 Windows版本安装忽略,一路next即可.
按照上图 设置服务器上需要监控的应用启动参数, 如上内容是:
agentpath:/home/ivanzhang/jprofile7/bin/linux-86/libjprofilerti.so=port=8849 将其加入到应用的启动脚本
设置好之后, 服务器上的应用,会等待你客户端连接上以后,才真正启动应用。 Jprofile连接上之后,则可以看到一下界面了, 它可以帮助你分析内存信息,线程信息,jdbc连接等等, 以下是监控本地开发机的应用情况,可以看到,哪个线程在跑哪些SQL,由哪些方法调用的。
4.2 JBoss
4.2.1 监控指标说明
JBoss主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。
4.2.2 监控工具
4.2.2.1 JBoss管理控制台
如果需要监控jboss的系统资源,如:jboss的基本配置情况,jvm的利用率,线程池的使用情况,可以使用web-console进行监控。
配置web-console 具体方法同jmx-console,就是位置不同,具体方法参考jmx-console配置:
jboss-web xml 、 web.xml 在$JBOSS_HOME/vcom/deploy/management/console-mgr.sar/web-console.war/WEB-INF下;
login-config.xml还是原来的那个,把application-pol