做性能测试已经有一两年时间了,一直都在胡乱碰撞,东学西学,都是一些表面的东西,很少想过把它们连贯起来。今天根据自己的理解写一下性能测试到一定阶段需要站到一个什么样子的高度去看待性能这个问题。
很多企业招聘都只写性能测试,会使用LR,jmeter工具。其实会使用jmeter和LR进行性能测试还只是性能测试的第一步,离真正的性能测试工程师还很远,我也还在路上 .。
性能测试,都是要求测试系统性能,系统自然就应该包括:客户端;网络;服务端。
一:先易后难。
首先是客户端性能,会有占用硬盘空间,内存使用,CPU占用,如果涉及下载存储就会涉及到磁盘。当然客户端性能现在已经算不上最主要的了。
除非是一下单机,和C/S架构的客户端。客户端性能是相对容易测试出来的,不涉及并发,只要程序运行起来就会看到内存和CPU使用情况,使用快慢很容易体会出来
二:网络环境。
网络环境是连接客户端和服务器的重要部分,如果网络带宽不够,就算服务器速度再快也是很难达到性能要求的,就是桥很窄而要过桥的人很多
三:服务器环境。
做为最受重视的一部分,同样服务器也必然涉及到CPU、内存、磁盘、当然还有我们不希望看到的swap。
这里先说的服务器性能是纯粹的机器性能不涉及软件环境性能。很多初级性能测试人员根本就不管这些,只是一句话是服务器性能瓶颈,却不分析是哪个地方的瓶颈。
服务器机械性能,要能够分析机器的机械性能必须了解CPU 、内存、磁盘之间的一些影响,本人也没有深入学习,只是表面分析,深入的交给生产商。
下面分层说一下:
cpu:中央处理器,一般可以理解大部分时间是直接操作内存中的数据,是不是CPU性能瓶颈,就要看看CPU的使用率和队列长度。如果CPU使用率很高,CPU瓶颈,CPU使用率不高,队列很长,CPU堵塞,需要详细分析原因(后面补上分析)。CPU使用不高和队列不长。非CPU瓶颈
内存:使用率高瓶颈,不高非瓶颈。没得说 磁盘:磁盘就是比内存慢很多的存储空间,可以说内存是很快的磁盘也行 相互之间分析:
CPU很好,内存很大性能必须好。 CPU一般,内存很大,CPU瓶颈,很多事情要处理CPU忙不过来
CPU很好,内存一般,内存瓶颈,CPU等着处理事务,可能内存提供不出这么多事务来
总之性能需要考虑的因素会比较多,比如网络环境与软件环境、数据库等等,以及硬件等等,希望我上面的总结对于大家会有一定的帮助。
来源:oschina
链接:https://my.oschina.net/alin520/blog/4738955