background image

处于较为理想的状况。

第三方面是对应用系统进行相应的优化以提高性能。

Web 服务器配置及相应的硬件扩展不失为解决系统性能问题的一条捷径,但应

用系统的优化也是应该重点加以考虑的,毕竟它能够在投入较少的情况下提高

系统的运用效率。

在开发的初期,我们就已经十分注意系统的利用效率,比如提醒程序员尽量不

要利用用户会话信息

(Session)来传递大的对象,对于内存要注意回收等。同

时,通过内部的交流会推广与介绍一些小的、有用的编程技巧来提高开发人员的

水平,通过代码的抽查,希望能在早期就发现问题等。

在系统运行期间,我们通过监控发现,应用服务器所基于的

Java 虚拟机,其内

存堆的空闲空间有不断下降的趋势,每隔若干天导致空间消耗殆尽、无法分配新

对象空间,从而导致系统重启。在排除了系统本身问题的原因外,我们确定为应

用系统的开发有问题。通过从网上万载

IBM 公司检测 Java 虚拟机的相关工具对

JVM 进行监控后终于发现系统内部存在着不能回收内存的对象,再通过查找相

应的程序发现在该程序中有 环状 的对象引用,从而导致对象使用后不能被垃

圾收集器所回收。这个问题的解决过程虽然十分艰苦,但由于该问题不能通过升

级硬件或增加资源配置而得到根本解决,会给系统带来很大的隐患。所以,整个

过程的分析与解决是完全值得的,更何况通过查找故障原因的过程,给整个项

目组上了生动的一堂软件质量保证课,对项目组的质量意识起了很大的促进作

用。

所以说改进

Web 服务器的性能井不单纯是系统管理方面的工作,它渗透到开发

以及

系统运行等一系列环节中。

第四方面预先考虑未来的扩展与性能需要。

随着系统的发展及成熟,考虑到用户访问量的不断上升,为了预留系统的发展

空间,我们最近又对整个系统作了一个系统性的升级。通过引入多台

HTTP 服务

器及应用服务器并行工作提高整个系统吞吐量及单点故障克服能力。由于在一开

始选型的时候就已经充分考虑到动态负载均衡及横向扩展方面的需要,这一项

的升级无需对整个系统的体系结构作根本的变革,对应用程序来说,更是没有