J2EE 中软件基础结构的瓶颈
2005-11-21
可扩展性是系统中的一个非常重要的非功能性需求。但系统中可能有多个瓶颈会阻碍系统的扩展性。在这篇文章中,我
们尝试分析软件基础结构成为瓶颈的案例,而不考虑硬件资源上的限制(如 CPU、磁盘空间、网络速度等)。下面我们将
探讨一下这个问题。
下面是一些整篇文章中用到的一些术语:
·吞吐量:系统支持的每秒能够处理的事务个数。
·服务请求:每个事务中特定硬件的使用率,等于硬件使用率除以吞吐量。
·硬件资源:指处理器、内存、磁盘和网络。
·软件资源:指 WEB 线程、执行线程、BEAN 池及数据库连接池等。
·预计时间:用户预计两次并发提交请求之间的时间。
·短时间法则:一个验证测试及确信测试环境不是瓶颈的法则。
·响应时间:用户等待他提交的请求返回响应的时间。
理论基础
任何 J2EE 应用通常都有下面几个层次,如图 1:
1、硬件基础结构资源(处理器、内存、磁盘和网络)
2、软件基础结构资源(JVM,WEB 服务器、应用服务器、数据库服务器)
3、软件应用(J2EE 应用)
Figure 1. Snapshot of a J2EE system
这儿有两个可能性导致瓶颈:硬件成为主要瓶颈或者软件成为主要瓶颈。在第一种情况,硬件资源不足够而软件资源
很充分,如图 2。随着负载的增加,硬件资源成为瓶颈,而软件可以继续扩展。减轻这个瓶颈的方案通常是扩大或者增
加硬件。