压测方法整理:
1. 写jmx脚本,整理csv数据文件;
2. 部署测试环境,把jmx和csv放在压测机,把监控脚本nmon放被压测机;
3. 安装nmon:
a. wget http://jaist.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz
b. tar -zxvf nmon16d_x86.tar.gz 解压
c. 查看linux版本:uname -a,我的是el6,所以nmon版本采用:nmon_x86_64_rhel6
下载安装(另一种方式)
nmon默认下载之后只是一个可执行测的文件,但是下载时根据不同的系统来进行区分的,这里我选择centos6.4系统版本。
大家可以根据自己的系统选择相应的版本。
执行命令 more /etc/issue 查看系统版本。
下载页面:http://sourceforge.net/projects/nmon/files/?source=navbar
下载得到文件nmon_x86_64_centos6,默认没有执行权限
chmod 777 nmon_x86_64_centos6
Linux环境:
需要使用root用户将nmon的安装包上传到服务器上解压,同时使用命令
cp nmon_x86_64_rhel54 /usr/local/bin/nmon
添加nmon命令,以后就可以直接使用nmon命令进入nmon监控界面
增加全局环境变量
例如nmon安装在/usr/local/bin/目录下
vi /etc/profile
|
在文件底部填加环境变量
#nmon
export NMON_HOME=/opt/nmon
export PATH=$NMON_HOME:$PATH
使配置文件生效
source /etc/profile
4. 运行nmon:./nmon_x86_64_rhel6 -s10 -c60 -f -m . 此时,会自动生成log文件
-s10每 10 秒采集一次数据。
-c60采集 60 次,即为采集十分钟的数据。
-f生成的数据文件名中包含文件创建的时间。
-m生成的数据文件的存放目录。
这样就会生成一个 nmon 文件,并每十秒更新一次,直到十分钟后。
生成的文件名如: _090824_1306.nmon ,"" 是这台主机的主机名。
nmon-h查看更多帮助信息。
也可以在启动nmon后,运行以下命令来采集数据 :nmon -s 5 -c 120 -F test_15thread_30min_101.nmon 表示:每5秒采集一个数据,共采集120次,也就是取压测10min的数据
5. 运行jmeter进行压测:sudo sh/home/apache-tomcat-jmeter/jmeter/bin/jmeter.sh -n -t/home/apache-tomcat-jmeter/bin/a/a.jmx-l log.jtl
压测机在Windows环境的话,直接点击运行即可
6. 停止jmeter后停止nmon,导出日志文件进行分析
导出日志文件:
通过SecureCRTPortable 工具,连接本地和服务器:
然后在弹出的窗体内,输入需要操作的命令(在此窗体内,相当于在本地操作,需要在Linux命令前加上l ),
比如:需要进入指定路径 lcd F:\性能测试\result
然后获取Linux环境的某个文件 get 文件名
将网卡饱和度写入文件中:nicstat -i ens160 1s > test_1tread_30min_101net.txt
数据分析
下载 nmon analyser (生成性能报告的免费工具):
下载页面:https://www.ibm.com/developerworks/community/wikis/home?lang=zh#!/wiki/Power%20Systems/page/nmon_analyser
解压之后可以得到一个nmon analyser v34a.xls,双击打开
Cpu使用率分为三部分,系统、用户和等待,分别对应图中红色、蓝色和绿色部分。cpu使用率100%的情况,如果红色占大部分,说明系统进程本身占据大部分cpu资源,可考虑系统是否存在过多僵尸进程或者系统进程存在死循环等原因;如果蓝色占大部分,说明用户进程占用大量cpu资源,可考虑被压系统是否压力过大,或者被压系统存在大量运算等消耗cpu资源的操作。
故: CPU取CPU_ALL中User%的平均值:
Total read 每秒接收到的千字节的数目,如图蓝色部分
Total write 每秒发送的千字节的数目,如图红色部分
网络=Total read-Total write
网络的指标一般要根据设备来确定,百兆网卡的意思是每秒能够传输的网络流量是100Mbps,即最大的下载速度是12.5MB/s,一般服务器是千兆网卡,即125MB/s
故:net取 net页面中ens160-total字段平均值
图内蓝色线条为物理内存使用率,红色线条为虚拟内存使用率。我们统计的内存使用率为:(已用物理内存+已用虚拟内存)/(物理内存+虚拟内存)x100%。
故:内存取Mem中的active字段的平均值
Disk Read 每秒读的千字节数目 图中为蓝色部分
Disk Write 每秒写的千字节数目 图中为红色部分
IO/sec 每秒进行的IO数(一次IO就是控制操作一次读或写,IO块就是读或写的大小),图中为上方黑色的线,报告中写的是这个参数的值
来自 <http://blog.itpub.net/23135684/viewspace-626439/>