提升CPU负载的测试方法

使用方法

场景1 持续占用CPU

1、adb push cpu_test.sh /data

chmod 777 /data/cpu_test.sh

2、打开cmd,运行脚本

cd /data

nice -n-20 sh cpu_test.sh

场景2 持续并以最大概率占用CPU

按照上述方法运行cpu_test.sh脚本后,再按照下面进行操作

然后运行如下命令(需要root权限),设置pid对应的线程调度策略和优先级:

chrt -f -p 9187 99

chrt -f -p 9188 99

...

【注】根据实际需求来设置,如测试不需要CPU调度太多偏向于测试脚本,则上述操作没必要把全部pid都设置为SCHED_FIFO;如果全部设置,CPU调度更趋向于测试脚本,机器可能出现严重卡顿或重启;

设置成功(PR一列显示“RT”)后的示意图如下:

场景3 间歇性占用CPU

步骤一:将上述脚本cpu_test.sh放到/data目录中,然后授权 chmod a+x /data/cpu_test.sh

步骤二:将下述脚本放到/data目录中,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目录 第1章 软件性能测试 1 1.1 什么是软件的性能 1 1.1.1 软件 1 1.1.2 软件性能的产生 4 1.1.3 功能与性能的关系 4 1.1.4 用户眼里的软件性能 6 1.1.5 软件人员眼里的软件性能 12 1.2 软件性能测试 16 1.2.1 性能测试在软件测试的周期位置 16 1.2.2 性能测试策略揭秘 20 1.3 如何做性能测试 23 1.3.1 Goal(定义目标) 26 1.3.2 Analysis(分析) 28 1.3.3 Metrics(度量) 29 1.3.4 Execution(执行) 30 1.3.5 Adjust(调整) 31 1.4 性能测试工具的评估和选择 32 1.4.1 测试预算VS工具价格 33 1.4.2 协议、开发技术、平台、中间件VS工具的支持 33 1.4.3 工具可使用的复杂程度VS项目计划的影响 34 第2章 第一次亲密接触LoadRunner 35 2.1 从性能测试到LoadRunner的映射 35 2.2 LoadRunner工作原理 38 2.3 安装LoadRunner 41 2.4 揭开License的神秘面纱 42 第3章 走近LoadRunner 44 3.1 LoadRunner的运行原理 45 3.1.1 LoadRunner三大高手 45 3.1.2 三大高手联手的一场性能测试盛大演出 48 3.2 LoadRunner的录制原理 50 3.2.1 网络协议与LoadRunner的Vuser 50 3.2.2 选择LoadRunner Protocol的两大定律 55 3.2.3 LoadRunner录制技术 56 第4章 LoadRunner脚本语言基础 62 4.1 C语言与LoadRunner脚本 66 4.1.1 看不见的main 67 4.1.2 全局变量与局部变量 71 4.1.3 在LoadRunner脚本里灵活使用C语言 74 4.1.4 高级--用户自定义函数 78 4.2 通用VU函数 81 4.2.1 事务和事务控制函数 82 4.2.2 命令行分析函数 83 4.2.3 系统信息函数 83 4.2.4 字符串函数 83 4.2.5 消息函数 84 4.2.6 运行时(run-time)函数 84 4.3 协议相关函数 85 4.3.1 HTTP协议原理 85 4.3.2 HTTP在LoadRunner的实现 86 第5章 VU--用户行为的模拟器 89 5.1 图灵试验与LoadRunner VU模拟奥秘 90 5.1.1 图灵试验场景 90 5.1.2 LoadRunner模拟揭秘 91 5.2 录制脚本 94 5.2.1 选择协议 94 5.2.2 规划脚本结构 96 5.2.3 HTTP Vuser中的URL mode和HTML mode 96 5.2.4 查看日志 99 5.3 回放脚本 101 5.4 关联 102 5.4.1 录制前Correlation(关联) 103 5.4.2 录制后关联 106 5.4.3 手动关联 109 5.5 脚本视图和树视图 113 5.5.1 树视图(Tree View) 113 5.5.2 脚本视图(Script View) 114 5.5.3 理解Snapshot 115 5.6 事务、同步点和思考时间 115 5.6.1 Transaction(事务) 115 5.6.2 Rendezvous Point(同步点) 118 5.6.3 注释 119 5.6.4 Think Time(思考时间) 119 5.7 数据驱动--参数化(Parameters) 121 5.7.1 为什么需要参数化 121 5.7.2 参数的创建 123 5.7.3 定义参数的属性 130 5.7.4 高级--从已存在的数据库中导入参数数据 136 5.8 检查点(Check point) 142 5.8.1 为什么需要检查点 142 5.8.2 检查点实施之一:ContentCheck定义 144 5.8.3 检查点实施之二:检查函数 144 5.8.4 检查点设置技巧 147 5.9 高级--多Action 147 5.10 高级--脚本错误处理机制 150 5.11 高级--脚本调试技巧 152 5.11.1 动态运行(Animated run)与非动态运行(Non-Animated run) 152 5.11.2 日志设置 153 5.12 高级--编写脚本的最佳实践 156 5.13 VU脚本运行成功后 157 第6章 Controller--性能测试的指挥中心 158 6.1 得到细化后的性能需求 159 6.2 设计性能测试场景 162 6.2.1 创建手工场景 164 6.2.2 百分比模式创建手工场景 173 6.2.3 创建面向目标场景 174 6.2.4 多IP的实现原理以及模拟 180 6.3 运行场景 183 6.3.1 场景控制 183 6.3.2 执行期间查看场景 191 6.3.3 监视场景 196 6.3.4 高级--用户自定义数据采集点 201 6.3.5 主要的计数器 203 6.3.6 实例--分析实时监视图表 211 6.4 场景运行后 213 6.5 高级--如何合理规划性能测试拓扑 213 6.5.1 选择最优的测试机配置 215 6.5.2 客户端CPU瓶颈估算 216 6.5.3 客户端网络瓶颈估算 217 6.5.4 客户端内存瓶颈估算 219 6.5.5 总评估 221 第7章 Analysis--寻找系统瓶颈的得力助手 222 7.1 Analysis报告概要(Summary) 223 7.1.1 概要部分 223 7.1.2 统计部分 224 7.1.3 事务统计 225 7.1.4 HTTP响应统计 227 7.2 Analysis标准图 227 7.2.1 Vuser图 227 7.2.2 事务图 228 7.2.3 网页细分图 230 7.3 交叉结果和合并图 233 7.3.1 叠加 235 7.3.2 平铺 236 7.3.3 关联 236 7.4 生成测试报告 237 7.4.1 创建HTML格式报告 237 7.4.2 创建Word格式报告 238 7.4.3 高级--数据点报告 239 第8章 欲善其事先利其器--VU脚本开发实战 240 8.1 邮件服务SMTP/IMAP协议介绍 241 8.1.1 电子邮件的工作原理 241 8.1.2 SMTP协议介绍 241 8.1.3 POP3协议介绍 243 8.1.4 IMAP协议介绍 244 8.2 VU的SMTP Vuser对SMTP协议的封装及实现 244 8.2.1 使用SMTP Vuser录制Outlook 2003发送邮件 247 8.2.2 对SMTP Vuser录制生成的脚本进行分析 251 8.2.3 回放SMTP Vuser脚本并分析网络日志 253 8.3 VU Java Vuser自开发SMTP程序 255 8.3.1 VU创建Java模板虚拟用户 255 8.3.2 设置Java环境 257 8.3.3 在Java Vuser中开发SMTP发送mail脚本 258 8.3.4 参数化增强脚本 260 第9章 学以致用--一步一步做Web系统性能测试 264 9.1 软件系统背景及架构设计介绍 264 9.2 性能要求和性能指标分析(Goal阶段) 267 9.2.1 性能指标 267 9.2.2 业务模型分析和需求细化 268 9.3 性能测试方案和用例设计(Analysis阶段) 268 9.4 性能测试各种度量的建立(Metrics阶段) 273 9.4.1 性能脚本的生成 273 9.4.2 定义用户行为 274 9.4.3 场景的设置与运行 274 9.4.4 计数器的设置与性能数据收集 276 9.5 运行场景,得到测试结果和相关数据(Execution阶段) 277 9.5.1 脚本的开发 277 9.5.2 数据的生成 278 9.5.3 并发登录测试 279 9.5.4 负载测试 279 9.6 分析测试瓶颈(Adjust阶段) 280 9.6.1 并发测试结果分析 280 9.6.2 交易流程测试结果分析及性能评价 281 9.6.3 查询流程测试结果分析 281 第10章 循序渐进--进阶LoadRunner高手 282 10.1 性能测试用例的设计策略 282 10.1.1 "普遍撒网,重点查看"的原则 282 10.1.2 保证数据的有效性 284 10.2 LoadRunner高级功能的使用--Web Click Vuser 286 10.2.1 Web Click Vuser的产生背景 286 10.2.2 Web Click Vuser与传统Vuser的差别 286 10.2.3 使用Web Click Vuser 286 第11章 定量分析及诊断--建立性能度量模型 291 11.1 实现性能度量的准备工作 292 11.1.1 性能度量 292 11.1.2 度量方式 294 11.2 案例实践--性能测试第一阶段Ajax页面基准性能分析 298 11.2.1 页面基准分析目标 298 11.2.2 分析所使用的工具 299 11.2.3 术语揭示 299 11.2.4 基准测试案例设计及运行 300 11.2.5 结果分析 305 11.2.6 优化建议 306 11.2.7 预测 306 11.3 案例实践:性能测试第二阶段Ajax系统负载测试 307 11.3.1 本轮测试目的 307 11.3.2 测试场景规划 307 11.3.3 负载测试案例分析 309 11.3.4 性能结果量化分析 312 11.4 总结 315 第12章 测试也开发--自开发性能测试框架 316 12.1 性能测试框架架构设计 317 12.1.1 技术考虑的准备 317 12.1.2 Automation Center性能测试框架设计实例 319 12.1.3 定义XML格式的性能测试任务文件 325 12.1.4 Automation Center性能测试调度运行 329 12.1.5 性能测试报告诊断系统 330 12.2 核心技术及具体实现方法 332 12.2.1 性能测试数据源格式定义 332 12.2.2 测试程序与性能测试框架的接口实现 336 12.2.3 测试任务克隆技术 339 12.2.4 多任务通信技术 340 12.2.5 Observer性能监控技术 341 12.2.6 基于XSL技术的性能测试报告构建 344 12.3 总结 346 附录A 有关LoadRunner的常见问题解答 347
LoadRunner常见测试结果分析 在测试过程中,可能会出现以下常见的几种测试情况:   一、当事务响应时间的曲线开始由缓慢上升,然后处于平衡,最后慢慢下降这种情形表明:   * 从事务响应时间曲线图持续上升表明系统的处理能力在下降,事务的响应时间变长;  * 持续平衡表明并发用户数达到一定数量,在多也可能接受不了,再有请求数,就等待;   * 当事务的响应时间在下降,表明并发用户的数量在慢慢减少,事务的请求数也在减少。   如果系统没有这种下降机制,响应时间越来越长,直到系统瘫痪。   从以上的结果分析可发现是由以下的原因引起:   1. 程序中用户数连接未做限制,导致请求数不断上升,响应时间不断变长;   2. 内存泄露;   二、CPU的使用率不断上升,内存的使用率也是不断上升,其他一切都很正常;   表明系统中可能产生资源争用情况;   引起原因:   开发人员注意资源调配问题。   三、 所有的事务响应时间、cpu等都很正常,业务出现失败情况;   引起原因:   数据库可能被锁,就是说,你在操作一张表或一条记录,别人就不能使用,即数据存在互斥性;   当数据量大时,就会出现数据错乱情况。 晏子出品--服务器压力测试软件 本文介绍了几个比较典型的服务器评测软件,无论什么评测工具,基本的技术都是利用线程技术模仿和虚拟用户,在这里主要的难点在于测试脚本的编写,每种工具使用的脚本都不一样,但是大多数工具都提供录制功能就算是不会编码的测试人员同样可以测试。众所周知,服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上,很多网络服务都在服务器上运行,因此服务器性能的好坏决定了整个应用系统的性能。现在市面上不同品牌、不同种类的服务器有很多种,用户在选购时,仅仅从配置上判别是不够的,最好能够通过实际测试来筛选,下面就介绍一些较典型的测试工具:   (一)服务器整机系统性能测试工具   一台服务器系统的性能可以按照处理器、内存、存储、网络几部分来划分,而针对不同的应用,可能会对某些部分的性能要求高一些。   Iometer(www.iometer.org):存储子系统读写性能测试   Iometer是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的最大IO能力、磁盘系统的最大吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。Iometer操作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。   Sisoft Sandra(www.sisoftware.co.uk):WINDOWS下基准评测   SiSoft发行的Sandra系列测试软件是Windows系统下的基准评测软件。此软件有超过三十种以上的测试项目,能够查看系统所有配件的信息,而且能够对部分配件(如CPU、内存、硬盘等)进行打分(benchmark),并且可以与其它型号硬件的得分进行对比。另外,该软件还有系统稳定性综合测试、性能调整向导等附加功能。Sisoft Sandra软件在最近发布的Intel bensley平台上测试的内存带宽性能并不理想,不知道采用该软件测试的FBD内存性能是否还有参考价值,或许软件应该针对FBD内存带宽的测试项目做一个升级。   Iozone(www.iozone.org):linux下I/O性能测试   现在有很多的服务器系统都是采用linux操作系统,在linux平台下测试I/O性能可以采用iozone。 iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试所有这些方面,生成excel文件,另外, iozone还附带了用gnuplot画图的脚本。该软件用在大规模机群系统上测试NFS的性能,更加具有说服力。   Netperf(www.netperf.org):网络性能测试   Netperf可以测试服务器网络性能,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值