一般指的是 CPU、RAM 方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、Web服务器等)、应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)。
例如,确定了在数据库服务器上需要 6 个 CPU、12GB 内存。但是在测试时,发现CPU的持续利用率超过 95%,这时可以认为在硬件上出现了性能瓶颈。
一般指的是应用服务器、Web服务器等应用软件,还包括数据库系统。
例如:在 WebLogic 平台上配置了 JDBC 连接池的参数,最大连接数为 50,最小连接数为 5,增加量为 10。在测试时发现,当负载增加时,现有的连接数不足,系统会动态生成 10 个新的连接,导致交易处理的响应时间大大增加。这时可以认为在应用软件上出现了性能瓶颈。
一般指的是开发人员新开发出来的应用程序。
例如,某程序员开发了一个缴费处理程序。在测试时发现,这个缴费处理程序在处理用户的并发缴费请求时,只能串行处理,无法并行处理,导致缴费交易的处理响应时间非常长,这时可以认为在应用程序上出现了性能瓶颈。
一般指的是 Windows、UNIX、Linux 等操作系统。
例如,在 Windows 操作系统中,对某软件进行性能测试,出现物理内存不足时,如果虚拟内存设置也不合理,虚拟内存的交换效率就会大大降低,从而导致行为的响应时间大大增加。这时可以认为在操作系统上出现了性能瓶颈。
一般指的是防火墙、动态负载均衡器、交换机等设备。
例如,在动态载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源已经到达极限时,动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现,动态负载均衡机制没有起到相应的作用,这时可以认为在网络设备上出现了性能瓶颈。
性能瓶颈出现的原因及其定位是十分复杂的,这里只是简单介绍常见的几种瓶颈类型和特征,而性能测试所需要做的就是根据各种情况因素综合考虑,然后协助开发人员一起定位性能瓶颈。

