什么是性能瓶颈

在性能测试中,总会用到“性能瓶颈”这个词,也就把它当成基本的一个词汇了,从没想过它到底是个什么东西。今天忽然有人问道什么是“性能瓶颈”,虽然勉强能列举一些例子来说明它,但总不是太令人满意,所以就总结一下。

首先得说明“瓶颈”的意思。瓶颈,通俗地说,就是一个瓶子的脖子,就是整个系统最薄弱的环节。好比一个桶,能装多少水取决于最短的那块木板,其它的木板再长也没用,那么我们就可以认为这块短的木板就是这个桶的瓶颈了。

所以性能瓶颈,就是说指限制系统性能的关键因素。

一般包括:

(1)硬件上的性能瓶颈

主要指的是CPU、RAM方面的问题。例如,在进行软件需求分析、概要设计时,确定了在数据库服务器上需要6个CPU、12G内存但是在测试时,发现CPU的持续利用率超过95%,这时可以认为在硬件上出现了性能瓶颈。

(2)应用软件上的性能瓶颈

一般指的是应用服务器、WEB服务器等应用软件,还包括数据库系统。例如,在WEBLogic平台上配置了JDBC连接池的参数,最大连接数为50,最小连接数为5,增加量为10。在测试时发现,当负载增加时,现有的连接数不足,系统会动态生成10个新的连接数,这样导致了交易处理的响应时间大大的增加。
这时可以认为在应用软件上出现了性能瓶颈。

(3)应用程序上的性能瓶颈

一般指的是开发人员新开发出来的应用程序。例如,用Java或者C开发出来的部署在应用服务器上用于用户交易请求处理的应用程序。例如,某个开发员开发了一个缴费处理程序,在测试时发现,这个缴费处理程序在处理用户发过来的并发缴费请求时,只能串行处理,无法并行处理,导致缴费交易的处理响应时间非常长,这时可以认为在应用程序上出现了性能瓶颈。

(4)操作系统上的性能瓶颈

一般指的是Windows、Unix、Linux这些操作系统。例如,在windows系统中,虚拟内存设置的不合理,都指定为C驱提供虚拟内存,在测试时发现当出现物理内存不足时,虚拟内存的交换效果非常不理想,导致交易的响应时间大大增加。这时可以认为在操作系统上出现了性能瓶颈。

(5)网络设备上的性能瓶颈

一般指的是防火墙、动态负载均衡器、交换机等设备。例如,在动态负载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源已经到达极限时,动态负载均衡器将后续的交易请求发送到其它负载较轻的应用服务器上。在测试时发现,动态负载均衡机制没有起到相应的作用,这时可以认为在网络设备上出现了性能瓶颈。

posted @ 2017-02-12 19:44  烟雨琼楼  阅读(1881)  评论(0编辑  收藏  举报