(三)对于磁盘
(1)>iostat interval count
如图5-11所示,其中:
图5-11 iostat interval count命令
- BlK-read/s:每秒物理磁盘的读取数据量。
- BlK-wrtn/s:每秒物理磁盘的写入数据量。
- BlK-read:总的物理磁盘的读取数据量。
- BlK-wrtn:总的物理磁盘的写入。
(2)>iostat –d sta1
如图5-12所示,指定的硬盘分区使用情况。
图5-12 iostat –d sta1命令
(3)>sar –d 3 3
如图5-13所示,报告设备使用情况,每3秒采样一次,连续采样3次。
(四)对于网络
(1)>ping
如图5-14所示,-c:指定了信息包数,-s:指定的信息包的长。
(2)>netstat
如图5-15、图5-16所示netstat显示路由器信息,其中:
- -a:显示所有的socket信息。
- -c:每隔1s就重新显示一遍,直到用户中断它。
- -i:显示所有网络接口的信息,格式同ifconfig -n:以网络IP地址代替名称,显示出网络连接情形。
图5-13 sar –d 3 3命令
图5-14 ping命令
图5-15 netstat-in命令
图5-16 netstat-nr命令
- -r:显示核心路由表,格式同rout -e。
- -t:显示TCP协议的连接情况。
- -u:显示UDP协议的连接情况。
- -v:显示正在进行的工作。
5.1.5 性能测试类型
1.负载测试
负载测试(LoadTesting)是指在一定的软件、硬件及网络环境下,通过运行一种或多种业务在不同虚拟用户数量情况下测试服务器的性能指标是否在用户的要求范围内,用于确定系统能承载的最大用户数、最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率。
案例5-5:负载测试。
以并发用户5000开始对某产品的模糊查询功能进行负载测试(数据库中的数据一直保持为10000条),记录CPU、MEM的使用率,然后每次增加500个并发用户,发现CPU,MEM的使用率会随之发生增长,当并发用户达到11500时发现CPU、MEM的使用率不再随之发生变化,仍旧与11000时相同,然后再先后验证并发用户为12000、12500时,CPU、MEM的使用率仍旧与11000时相同,最终确定本次测试的模糊查询模块最大用户并发数为11000。
2.压力/强度软件测试
压力/强度测试(Stress Testing)是指在一定的软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。(通常为70%~80%最高负载运行48h)
案例5-6:压力/强度测试。
在案例5-5场景下(数据库中的数据一直保持为10000条),将并发用户设置为最大并发用户的75%,即11000×75%=8250,持续运行48h,使用监控软件监控应用服务器以及数据库设备的各个使用率情况。48h后,通过查看测试日志,发现在第36小时34分,服务器端查询进程的内存出现了飙升,持续12s后降到0点,这时查询进程的CPU使用率也一下降到0点,确定在这个时刻可能存在一个内存溢出的Bug。
3.配置测试
配置测试(Configuration Testing)是指在不同的软件、硬件以及网络环境配置下,通过运行一种或多种业务在一定的虚拟用户数量情况下获得不同配置的性能指标,用于选择最佳的设备及参数配置。
案例5-7:配置测试。
对某个安卓APP软件在几个主流厂商的手机上进行负载测试,测试结果表明在华为手机上性能最好,而在小米手机上性能最差。
4.容量测试
容量测试(Volume Testing)是指在一定的软件、硬件及网络环境下,向数据库中构造不同数量级别的数据记录,通过运行一种或多种业务在一定的虚拟用户数量情况下,获取不同数据级别的服务器性能指标,以确定数据库的最佳容量。
案例5-8:容量测试。
在案例5-5场景下,保持并发用户为8250,数据库数据从10000条开始每次增加1000条记录CPU、MEM的使用率,当数据达到25000后,发现CPU、MEM的使用率居高不下,响应时间骤降。所以,确定本次测试的模糊查询模块最大容量为25000条。
5.基准测试
基准测试(BenchmarkTesting)是指在一定的软件、硬件及网络环境下,模拟一定数量虚拟用户运行一种或多种业务将软件测试结果作为基线数据,在系统调优或者系统评测过程中,通过运行相同的业务场景并比较软件测试结果,确定调优是否达到效果或者为系统的选择提供决策数据。
一般而言,每次结果不得低于上次结果的95%。比如,上次最大并发数为10000个用户,则这次最大并发数不得小于9500。
案例5-9:基准测试。
在案例5-5的产品设计的版本下发布了一个新的版本,得到的最大并发数为1090,最大容量为23000条。与上一次的测试结果比较:并发1090/1100×100%≈91%,23000/25000×100%=92%。所以,这次性能测试中并发测试是符合要求的,而容量测试是不符合要求的,需要开发人员定位容量测试性能降低的原因。
顾翔凡言:
敏捷具有适用性,即使用了敏捷,也不要做成假敏捷,掌握敏捷的真谛。