当前机器的CPU使用率只有40%因而有足够空间来增加一个实例。我们可以发现在增加了实例后,吞吐量也增加了50%,如表2

在不同机器的群集
当吞吐量满载了应用服务器的一个实例时,机器的CPU使用率只有40%。因为8CPU的机器未完全利用,所以我们测试一下更低配置的机器。现在我们使用两个4CPU的机器,如图6。

Figure 6. Instance clusters on different hardware boxes
我们发现4CPU机器的CPU使用率已达到80%,再增加实例也没有什么用处了。因此我们又增加一台4CPU的机器来运行应用的实例。在增加机器后,吞吐量几乎翻了一倍。在这里我们确信数据库服务器不会成为瓶颈。
注:在上面的两台机器的测试中,负载平衡是通过一种不增加应用服务器实例功能负载的方式来处理的。但是在实际的生产环境中很难做到。
因为我们观察到8CPU的机器被没有被完全利用,所以我们使用4CPU的机器重新测试了一遍。测试的结果可以在下表中看到,分别对应配置1和2。4CPU的配置几乎被完全利用了,这意味着使用4CPU的配置比8CPU的配置更实际,因为前者花费更少。
小结
这些实验指出了软件基础结构如应用服务器实例可能成为瓶颈,并给出了一些解决方案来减轻这种问题(包括在相同或不同机器上的群集)。这个问题需要在J2EE应用的负载计划或大小确定时优先考虑,因为这直接影响到应用的扩展性。这种想法很重要。
