在第二种情况,硬件资源是足够的而软件资源相对有限。随着负载的增加,软件资源成为瓶颈,如图3。减轻这种瓶颈的方案通常是使用软件群集或优化软件。

Figure 3. Software pipe becomes a bottleneck
应用服务器如何工作?
来考虑一下应用服务器的内部机制。应用服务器的基本功能包括事务管理、数据持久、对象池、SOCKET处理和请求处理。这些功能的流程如图4。有各种组件来处理这些功能。这些组件需要同步应用服务器中的线程来维护数据的一致性并操作数据。虽然这种同步对应用服务器的功能正确性是必须而且有用的,但是也成为高负载的限制,即使有足够的硬件资源。

Figure 4. Internals of an application server
