1、 性能测试的目的:通过测试确认软件是否满足产品的性能需求,同时发现系统中存在的性能瓶颈,起到优化系统的目的。
2、 性能测试指标的来源:测试的依据是产品的需求规格说明书;如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。
3、 性能测试的指标:服务器的各项指标(CPU使用率、内存占用率、硬盘占用率等)、后台数据库的各项指标和软件的响应时间:
(1) 操作系统有关的指标:CPU平均利用率、内存平均占用率、硬盘占用率、I/O数量、网络时延
(2) 数据库有关的指标:I/Owait、Mem平均使用率、cpu平均使用率、在一次I/O操作中所读的最大BLOCKS数、Log的增长情况、数据库的访问速度、数据库能支持的最大用户数、数据库CACHE命中率、不同数据库参数下的性能情况、锁的处理
(3) 软件有关的指标:交易的平均响应时间(从接收请求到回复响应的时间)、每秒交易数量(单位时间里的执行次数)、对中间件功能的调用、远程处理延迟
4、 查看性能指标的命令和方法:
vmstat:虚拟内存的统计(cpu/io)
iostat:设备的IO统计
netstat:网络活动信息统计
top:内存统计
cat /proc/meninfo:查看系统的总men大小
cat /proc/cpuinfo:查看系统总CPU大小
df –k:查看系统硬盘大小
举例说明:
(1)查看CPU使用情况的命令
每5秒刷新一次,最右侧有CPU的占用率的数据:$ vmstat 5
top 然后按Shift+P,按照进程处理器占用率排序:$ top
(2)查看内存使用情况的命令
用free命令查看内存占用情况:$ free
top 然后按Shift+M, 按照进程内存占用率排序:$ top
(3)查看网络流量
可以用工具iptraf工具:$ iptraf -g
针对某个Interface的网络流量可以通过比较两个时间网络接口的RX和TX数据来获得:$ date; ifconfig eth1或$ date; ifconfig eth1
(4)查看磁盘i/o
用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次: iostat -d -x /dev/sdc3 2
用vmstat查看io部分的信息: vmstat 2
5、 常用的性能测试工具:
MI:Loadrunner,
Compuware:Qaload
Rational: Rational PerformanceStudio
6、 性能测试开始与结束时间:
开始:系统功能测试完成之后,如果某个功能修改比较大或增加新的功能,也应该重新进行性能测试。
结束:系统满足各项性能要求、能满足实际使用情况并提供测试报告。
7、 性能测试、压力测试、负载测试与容量测试:性能测试包括负载测试、压力测试和容量测试三种主要测试类型。
(1) 性能测试:在正常的负载和配置下程序的响应时间和吞吐率。性能数据的提取通常是通过不断调整压力来获得的。
(2) 压力测试:通过改变应用程序的输入以对应用程序施加越来越大的负载并测量在这些不同的输入时性能的改变,考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在,模拟巨大的工作负荷以查看应用程序在峰值使用情况下的处理能力和承受能力。通常是通过不断调整压力来提取系统的最优性能数据的。
(3) 负载测试:长时间在超负荷环境中运行,程序是否能够承担。这其实是长时间的大压力测试,主要检查系统的稳定性(比如程序在负载的时候是否会coredump)以及系统的资源占用情况是否合理(是否出现内容泄露或CPU爆涨或某资源使用之后不释放)或者是否会出现异常(比如系统不能正常运行)。
(4) 容量测试:使程序经受大容量数据处理的检验,一般地说针对数据库而言,是在数据库中有较大数量的数据记录情况下对系统进行的测试。
8、 性能测试方案的要素:
(1) 确定性能指标
(2) 设计测试场景
(3) 确定需要测试收集的数据
(4) 确定测试方法
(5) 确定测试步骤
9、性能调优工作的准备
(1)收集系统信息
A、 主要的服务或者应用
B、 用户数及使用方式
C、 系统有哪些进程,都在干什么,使用了多少cpu、mem
D、 系统配置情况:cpu、mem、disk(连接方式RAID)及其占用情况
E、 最近所做的改动(硬件、软件、内核)
(2)判别性能瓶颈