系统压力测试报告案例存储转发机制优化系统.docx
- 文档编号:9197877
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:47
- 大小:36.37KB
系统压力测试报告案例存储转发机制优化系统.docx
《系统压力测试报告案例存储转发机制优化系统.docx》由会员分享,可在线阅读,更多相关《系统压力测试报告案例存储转发机制优化系统.docx(47页珍藏版)》请在冰豆网上搜索。
系统压力测试报告案例存储转发机制优化系统
【关键字】系统
一级XXXX枢纽
存储转发机制优化系统
压力尝试报告
DocumentInformation
ProjectName:
DocumentVersionNo:
1.0
DocumentVersionDate:
2005-08-16
PreparedBy:
PreparationDate:
2005-08-16
ReviewedBy:
ReviewDate:
DistributionList
From
Date
Company/Role
Email/Phone
To
Action*
DueDate
Company/Role
Email/Phone
*ActionTypes:
Approve,Review,Inform,File,ActionRequired,AttendMeeting,Other(pleasespecify)
VersionHistory
Ver.No.
Ver.Date
RevisedBy
Description
Filename
1.0
2005-09-07
初稿
版权说明
1概述
1.1测试目的
本次压力测试主要针对存储转发机制优化系统性能进行压力测试。
1.2测试方法
●测试工具及脚本:
应用ORM工具(Hibernate)作为辅助工具,对应用系统的主要参数(例如线程数、线程与落地方的对应关系、每次捞saf记录数、落地方的可承受接收记录数)等等进行管理,及对运行log进行正确行分析,计算压力测试结果,计算性能图绘制数据等等。
另外,监控服务器的CpuIdle、Memory、DiskIO等重要数据则由perfmon.Sh脚本完成。
●测试方法:
通过工具webMethodsDeveloper启动/关闭saf线程,直到应用系统满足压力测试要求的循环次数为止。
1.3压力测试场景
压力测试场景主要分为两种方式:
✧单场景:
50万saf数据中,在未处理数据不同比例中,应用系统的吞吐能力。
50万saf数据中,不同的线程数量,应用系统的吞吐能力。
✧混合场景:
50万saf数据中,在未处理数据不同比例与不同的线程数量中,应用系统的吞吐能力。
1.4测试系统环境配置
服务器环境如下:
服务器操作系统:
HP-UX11.11
服务器IP:
JDK版本:
JDK1.4.1PA2.0
测试环境是:
中心:
服务器:
用户:
cmcbadm
系统目录:
csc:
/home/cmcbadm及/opt/webMethods
webMethods端口:
5555
数据库:
配置:
jdbc:
oracle:
thin:
@&user=cmcbadm
CSN1:
服务器:
用户:
wm_sn1
系统目录:
csn1:
/home/wm_sn1及/opt/webMethods
webMethods端口:
6666
数据库:
配置:
jdbc:
oracle:
thin:
@&user=csn1
CSN2:
服务器:
用户:
wm_sn2
系统目录:
csn2:
/home/wm_sn2及/opt/webMethods
webMethods端口:
8888
数据库:
配置:
jdbc:
oracle:
thin:
@&user=csn2
1.5参考资料
《存储转发机制优化概要设计_
《一级BOSS抗容功能规格说明书》
《存储转发机制优化系统测试方案及案例.doc》
2压力测试场景一
2.1场景一特征
saf数据有1000条,很少,线程有3个,每个线程只对应与一个落地方。
本场景的测试意义更多是验证功能的正确性,例如验证saf存储转发是否满足三个原则?
线程名与落地方的对应关系是否正确?
线程每次循环取saf记录数是否正确?
线程循环间隔时间是否正确?
线程睡眠时间是否自适应?
等等(详见,为其它真正的压力测试场景测试做好基础工作。
本场景是在启动sc、sn1、sn2应用后进行测试。
2.2测试数据
2.2.1线程信息表
线程标识
间隔时间(ms)
每次捞数
线程1
5000
100
线程2
5000
100
线程3
5000
100
注释:
共3个线程,循环间隔时间5000ms,每次捞saf数据记录100条
2.2.2线程与落地方关系表
线程标识
落地方机构码
落地方当前
接收能力(条/次)
落地方最大
接收能力(条/次)
线程1
2101
30
30
线程2
2201
60
60
线程3
2501
90
90
注释:
1.共3个机构,占总机构(31个)的10%,其中机构码8888是特殊机构,是中心应用日月结数据
2.每个线程大约管理1个机构的saf数据发送
3.落地方的接收能力是一个随机数,在30条/次,60条/次,90条/次三种能力的其中之一
2.2.3saf数据关系
节点数
Saf总记录
未处理数
已处理数
间隔时间
中心捞数/次
线程数
每线程处理的省
每省承受
10%的省
(3省)
1000
1000
0
5s
100
1
1
30/60/90
注释:
1.saf总记录数1000,未处理的0
2.1000未处理的数据平均散落到3个省中,平均大约300条/省
3.每条saf记录的发送优先级别在4,5,6三个优先级别的其中之一
2.3测试步骤
1.开始
2.关闭saf线程
updateSAF_DISPATCHERSsetSTATUS=’1’;
3.删除测试日志:
rm/tmp/testlog.log*
4.启动Cpu、Mem、Disk监控程序
/tmp/perfmon.sh
5.启动saf线程
updateSAF_DISPATCHERSsetSTATUS=’0’;
通过工具webMethodsDeveloper启动saf线程
6.观察测试日志
ls–l/tmp/testlog.log*,共有8个文件(每个线程单独有一个文件)
ls-l/tmp/*.stat,共有4个文件,分别是:
cmcbtst2_cpu.stat(Cpu活动记录,每隔5s记录一次)
cmcbtst2_mem.stat(Memory活动记录,每隔5s记录一次)
cmcbtst2_disk.stat(Disk活动记录,每隔5s记录一次)
cmcbtst2_is.stat(java进程活动记录,每隔5s记录一次)
7.循环观察ls–l/tmp/testlog.log*,直到循环处理saf数据8-10次为止
8.关闭saf线程
updateSAF_DISPATCHERSsetSTATUS=’1’;
通过工具webMethodsDeveloper观察,直到8个线程均退出为止
9.关闭Cpu、Mem、Disk监控程序
【Ctrl】+【c】
10.ftp测试日志
把测试日志ftp到本地PC
测试日志有:
/tmp/testlog.log*,共有8个文件(每个线程单独有一个文件)
/tmp/cmcbtst2_cpu.stat(Cpu活动记录,每隔5s记录一次)
/tmp/cmcbtst2_mem.stat(Memory活动记录,每隔5s记录一次)
/tmp/cmcbtst2_disk.stat(Disk活动记录,每隔5s记录一次)
/tmp/cmcbtst2_is.stat(java进程活动记录,每隔5s记录一次)
11.运行本地的测试日志拆分、分析程序
程序:
HibernateTest1.java
作用:
根据多线程存储转发运行日志testlog.logxxx(xxx是线程名)进行拆分解析,并得到运行过程中的重要数据
12.结束
注释:
本压力测试主要测试从几十万级的saf数据中捞出需要发送数据记录的能力,因此为突出重点,简化了系统环境,即把程序中发送语句临时注释掉(不发送)。
2.4测试结果
2.4.1测试日志和脚本
1).(参见《压力测试场景一测试日志.rar》)
2).(参见压力测试日志解释程序)HibernateTest1.java
2.4.2基本测试结果
主要检查项
主要检查点
结果
三个原则
优先级高的先发
OK
同级时间优先
OK
按照落地方承受能力发送
OK
线程名与落地方的对应关系
线程名与落地方的完全对应
OK
线程每次循环取saf记录数
记录数正确
OK
线程循环间隔时间
间隔时间正确
OK
线程睡眠时间
若T2-T1>=T,则告警(须调整间隔时长),继续执行1。
否则Sleep(T-(T2-T1))
OK
落地方与线程
同一个落地方与线程唯一对应
错误:
可以不唯一对应
2.4.3支撑数据和测试结果表
线程
每次捞saf数量
落地方
落地方
接收能力
压力测试项
压力测试结果
线程1
100
2101
30
捞次数/睡次数
49/49
最少/最大/平均捞数据耗时ms
141/879/264
最少/最大/平均睡眠时间ms
4121/4859/4735
线程2
100
2201
60
捞次数/睡次数
43/43
最少/最大/平均捞数据耗时ms
126/696/210
最少/最大/平均睡眠时间ms
4304/4874/4789
线程3
100
2501
90
捞次数/睡次数
49/49
最少/最大/平均捞数据耗时ms
132/870/247
最少/最大/平均睡眠时间ms
4130/4868/4752
3个线程共捞且发送saf记录共22740条
3个线程共捞且发送saf记录平均耗时(264+210+247)/3=240.33毫秒
3个线程共捞且发送saf记录循环平均次数(49+43+49)/3=47次
3线程共同捞且发送saf数据平均速度:
22740/240.33*1000/47=2013.19(条/秒)
2.4.4性能曲线图
2.4.4.1图表说明:
捞saf数据且发送数据所耗时间(毫秒)图
X轴为线程循环次数,Y轴为捞saf数据且发送数据所耗时间(毫秒)
整个运行期间,所有线程中耗时最小126毫秒,最大879毫秒,平均值:
240.33毫秒
2.4.4.2图表说明:
Memoryfree检测图
X轴为每间隔5秒循环检测Memoryfree次数,Y轴为Memoryfree值(M)
Memoryfree值来源于服务器的TOP命令中Memoryfree值
物理内存:
2097152Kbytes
Memoryfree值(M)(起点92.83M):
整个运行期间,最小值:
74.72M,最大值92.83M,平均值:
84.38M(平均耗内存92.83-84.38=8.45M)
2.4.4.3图表说明:
userCpu、sysCpuidleCpu的平均值检测图
X轴为每间隔5秒循环检测Cpu次数,Y轴为userCpu、sysCpuidleCpu的平均值(%)
userCpu、sysCpuidleCpu值来源于服务器的TOP命令中userCpu、sysCpuidleCpu的Avg值
userCpu值(%):
整个运行期间,最小值:
31.9%,最大值38.9%,平均值:
35.4%
sysCpu值(%):
整个运行期间,最小值:
18%,最大值23.4%,平均值:
21.02%
idleCpu值(%):
整个运行期间,最小值:
0.2%,最大值46.6%,平均值:
33.14%
2.4.5压力测试小结
下列测试指标证明系统处于轻载状态
●3线程共同捞且发送saf数据平均速度:
2013.19(条/秒)
●捞saf数据且发送数据(平均每线程每次大约160条记录)所耗时间,所有线程中耗时最小126毫秒,最大879毫秒,平均值:
240毫秒
●Memoryfree值(M),整个运行期间,最小值74.72M,最大值92.83M,平均值:
84.38M(平均耗内存92.83-84.38=8.45M)
●idleCpu值(%),整个运行期间,最小值:
0.2%,最大值46.6%,平均值:
33.14%
3压力测试场景二
3.1场景二特征
saf数据记录有50万条,未处理的数据记录有20万条,共有8个线程,落地方机构有25个,平均每个线程处理大约3个机构。
该场景验证数据库访问的吞吐能力、系统线程的协调能力,同时也可验证在高强度压力下功能的正确性。
本场景是在启动sc、关闭sn1、sn2应用后进行测试。
3.2测试数据
3.2.1线程信息表
线程标识
间隔时间(ms)
每次捞数
线程1
5000
100
线程2
5000
100
线程3
5000
100
线程4
5000
100
线程5
5000
100
线程6
5000
100
线程7
5000
100
线程8
5000
100
注释:
共8个线程,循环间隔时间5000ms,每次捞saf数据记录100条
3.2.2线程与落地方关系表
线程标识
落地方机构码
落地方当前
接收能力(条/次)
落地方最大
接收能力(条/次)
线程1
2001
30
30
线程1
5911
60
60
线程1
8981
90
90
线程2
2701
30
30
线程2
7711
60
60
线程2
9711
90
90
线程3
3711
30
30
线程3
7311
60
60
线程3
7911
90
90
线程4
2301
30
30
线程4
2801
60
60
线程4
8911
90
90
线程5
2901
30
30
线程5
8511
60
60
线程5
8711
90
90
线程6
9311
30
30
线程6
3111
60
60
线程6
3511
90
90
线程6
5311
30
30
线程7
2101
60
60
线程7
2201
90
90
线程7
4711
30
30
线程8
2501
60
60
线程8
5511
90
90
线程8
5711
30
30
线程8
8888
120
120
注释:
1.共26个机构,占总机构(31个)的84%,其中机构码8888是特殊机构,是中心应用日月结数据
2.每个线程大约管理3个机构的saf数据发送
3.落地方的接收能力是一个随机数,在30条/次,60条/次,90条/次三种能力的其中之一
3.2.3saf数据关系
节点数
Saf总记录
未处理数
已处理数
间隔时间
中心捞数/次
线程数
每线程处理的省
每省承受
84%的省
(26省)
50万
20万
30万
5s
100
8
3
4*(30/60/90)
4*(120/150/180)
注释:
1.saf总记录数50万,未处理的20万,占总数的40%
2.20万未处理的数据平均散落到25个省中,平均8000条/省
3.每条saf记录的发送优先级别是在4,5,6三个优先级别的其中之一
3.3测试步骤
与压力测试场景一完全相同
注释:
本压力测试主要测试从几十万级的saf数据中捞出需要发送数据记录的能力,因此为突出重点,简化了系统环境,即把程序中发送语句临时注释掉(不发送)。
3.4测试结果
3.4.1测试日志和脚本
1).(参见《压力测试场景二测试日志.rar》)
2).(参见场景一压力测试日志解释程序)HibernateTest1.java
3.4.2基本测试结果
主要检查项
主要检查点
结果
三个原则
优先级高的先发
OK
同级时间优先
OK
按照落地方承受能力发送
OK
线程名与落地方的对应关系
线程名与落地方的完全对应
OK
线程每次循环取saf记录数
记录数正确
OK
线程循环间隔时间
间隔时间正确
OK
线程睡眠时间
若T2-T1>=T,则告警(须调整间隔时长),继续执行1。
否则Sleep(T-(T2-T1))
OK
落地方与线程
同一个落地方与线程唯一对应
错误:
可以不唯一对应
3.4.3支撑数据和测试结果表
线程
每次捞saf数量
落地方
落地方
接收能力
压力测试项
压力测试结果
线程1
100
2001
5911
8981
30
60
90
捞次数/睡次数
8/0
最少/最大/平均捞数据耗时ms
468288/626185/586774
最少/最大/平均睡眠时间ms
0/0/0
线程2
100
2701
7711
9711
30
60
90
捞次数/睡次数
8/0
最少/最大/平均捞数据耗时ms
519297/661643/612259
最少/最大/平均睡眠时间ms
0/0/0
线程3
100
3711
7311
7911
30
60
90
捞次数/睡次数
7/0
最少/最大/平均捞数据耗时ms
556247/723280/675301
最少/最大/平均睡眠时间ms
0/0/0
线程4
100
2301
2801
8911
30
60
90
捞次数/睡次数
7/0
最少/最大/平均捞数据耗时ms
596618/764844/706594
最少/最大/平均睡眠时间ms
0/0/0
线程5
100
2901
8511
8711
30
60
90
捞次数/睡次数
7/0
最少/最大/平均捞数据耗时ms
481347/789852/707512
最少/最大/平均睡眠时间ms
0/0/0
线程6
100
9311
3111
3511
5311
30
60
90
30
捞次数/睡次数
10/0
最少/最大/平均捞数据耗时ms
374084/562711/493206
最少/最大/平均睡眠时间ms
0/0/0
线程7
100
2101
2201
4711
60
90
30
捞次数/睡次数
9/0
最少/最大/平均捞数据耗时ms
439257/581731/539130
最少/最大/平均睡眠时间ms
0/0/0
线程8
100
2501
5511
5711
60
90
30
捞次数/睡次数
10/0
最少/最大/平均捞数据耗时ms
355052/498521/463642
最少/最大/平均睡眠时间ms
0/0/0
8线程共同捞且发送saf数据(条):
10530
8线程共同捞且发送saf数据平均耗时(毫秒):
598052.25
8个线程共捞且发送saf记录循环平均次数:
8.25次
8线程共同捞且发送saf数据平均速度(条/秒):
2.13(10530/598.05225/8.25)
3.4.4性能曲线图
3.4.4.1图表说明:
捞saf数据且发送数据所耗时间(秒)图
X轴为线程循环次数,Y轴为捞saf数据且发送数据所耗时间(秒)
整个运行期间,所有线程中耗时最小355秒,最大790秒,平均值:
598秒
3.4.4.2图表说明:
Memoryfree检测图
X轴为每间隔5秒循环检测Memoryfree次数,Y轴为Memoryfree值(M)
Memoryfree值来源于服务器的TOP命令中Memoryfree值
物理内存:
2097152Kbytes
Memoryfree值(M)(起点388M):
整个运行期间,最小值:
126.82M,最大值287.73M,平均值:
194.13M(平均耗内存388-194=194M)
3.4.4.3图表说明:
userCpu、sysCpuidleCpu的平均值检测图
X轴为每间隔5秒循环检测Cpu次数,Y轴为userCpu、sysCpuidleCpu的平均值(%)
userCpu、sysCpuidleCpu值来源于服务器的TOP命令中userCpu、sysCpuidleCpu的Avg值
userCpu值(%):
整个运行期间,最小值:
1%,最大值23.8%,平均值:
5.33%
sysCpu值(%):
整个运行期间,最小值:
0%,最大值36.6%,平均值:
5.40%
idleCpu值(%):
整个运行期间,最小值:
0%,最大值99%,平均值:
79.11%
3.4.4.4图表说明:
Disk检测图
X轴为每间隔5秒循环检测Disk次数,Y轴为Diskbusy值(%)
Diskbusy值来源于服务器的sar-d命令中Diskbusy值
Diskbusy值(%):
整个运行期间,最小值:
94.29%,最大值100%,平均值:
99.8%
3.4.5压力测试小结
下列测试指标证明系统处于极度饱和状态
●8线程共同捞且发送saf数据平均速度:
2.13(条/秒)
●捞saf数据且发送数据(平均每线程每次大约160条记录)所耗时间,所有线程中耗时最小355秒,最大790秒,平均值:
598秒
●Memoryfree值(M),整个运行期间,最小值:
126.82M,最大值287.73M,平均值:
194.13M(平均耗内存388-194=194M)
●idleCpu值(%),整个运行期间,最小值:
0%,最大值99%,平均值:
79.11%
●Diskbusy值(%),整个运行期间,最小值:
94.29%,最大值100%,平均值:
99.8%
系统处于极度饱和状态,瓶颈在Disk的读写操作
4压力测试场景三
4.1场景三特征
与场景二几乎相同,不同的是未处理数据降为10万条,已经处理数据升为40万条。
验证未处理数据量从20万降到10万后,数据库访问的吞吐能力是否有改善,可以改善多少?
本场景是在启动sc、关闭sn1、sn2应用后进行测试。
4.2测试数据
4.2.1线程信息表
与压力测试场景二完全相同
4.2.2线程与落地方关系表
与压力测试场景二完全相同
4.2.3saf数据关系
节点数
Saf总记录
未处理数
已处理数
间隔时间
中心捞数/次
线程数
每线程处理的省
每省承受
84%的省
(26省)
50万
10万
40万
5s
100
8
3
4*(30/60/90)
4*(120/150/180)
注释:
1.saf总记录数50万,未处理的10万,占总数的2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 压力 测试报告 案例 存储 转发 机制 优化