【发布时间】:2012-01-19 13:51:14
【问题描述】:
我有一个完全用 Java 制作的 Web 应用程序。 Webapp 不使用任何图形/模型框架,相反,webapp 使用模型视图控制器。它仅使用 Servlet 规范(Servlet 2.4 版)制作。 自 2001 年以来开发的 webapp,它非常复杂。最初,它是为与 Tomcat 4.x/5.x 一起工作而构建的。实际上,在 Tomcat 6.x 上运行。但是,我们仍然有内存泄漏。
在深度上,Webapp 的规格可以恢复为:
- 使用 Servlet v. 2.4 规范。
- 它不使用任何框架
- 它不使用 JavaEE(不是 EJB)
- 它基于 JavaSE(带有 Servlet)
- 仅适用于 IE 6+(因为它的年龄)
基础设施规范
实际上,webapp 可以在三种环境中工作:
第一
- IBM 服务器(具体型号我记不清了)
- 英特尔至强 2.4 Ghz
- 32GB 内存
- 1TB 硬盘
- Tomcat(版本 6)配置为使用 8GB 内存
第二
- 戴尔服务器
- 英特尔至强 2.0Ghz
- 4GB 内存
- 500GB 硬盘
- Tomcat(5.5 版)配置为使用 1.5GB 内存
第三
- 戴尔服务器
- AMD 皓龙 1214 2.20Ghz
- 4GB 内存
- 320GB 硬盘
- Tomcat(版本 6)配置为使用 1.5GB 内存
数据库规范
webapp 使用 SQL Server 2008 R2 Express Edition 作为 DBMS,但第一个服务器规范的用户除外,它使用 SQL Server 2008 R2 Standard Edition。对于连接池,该应用使用 Apache DBCP。
问题
嗯,它有非常严重的性能问题。 webapp 不断变慢,并且多次拒绝服务。恢复应用程序的唯一方法是重新启动 Apache Tomcat 服务。 在性能审核期间,我发现了几个编程问题(例如永远不会关闭的数据库连接、过度使用 Vector 集合 [而不是 ArrayList])。
我想知道如何提高应用程序的性能,哪些应用程序可以帮助我监控 Tomcat 性能和 Webapp 内存使用情况。
我们很乐意接受所有建议。
【问题讨论】:
标签: java performance sql-server-2008 web-applications tomcat6