gpt4 book ai didi

Java Webapp 性能问题

转载 作者:行者123 更新时间:2023-11-30 05:54:49 25 4
gpt4 key购买 nike

我有一个 Web 应用程序,完全用 Java 制作。 Webapp 不使用任何图形/模型框架,相反,webapp 使用 Model View Controller 。它仅使用 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 RAM

第二

  • 戴尔服务器
  • 英特尔至强 2.0Ghz
  • 4GB 内存
  • 500GB 硬盘
  • Tomcat(版本 5.5)配置为使用 1.5GB RAM

第三

  • 戴尔服务器
  • AMD 皓龙 1214 2.20Ghz
  • 4GB 内存
  • 320GB 硬盘
  • Tomcat(版本 6)配置为使用 1.5GB RAM

数据库规范

Web 应用程序使用 SQL Server 2008 R2 Express Edition 作为 DBMS,第一个服务器规范的用户除外,它使用 SQL Server 2008 R2 Standard Edition。对于连接池,该应用程序使用 Apache DBCP。

问题

嗯,它有非常严重的性能问题。 Web 应用程序不断变慢,并且多次拒绝服务。恢复应用程序的唯一方法是重新启动 Apache Tomcat 服务。在性能审核期间,我发现了几个编程问题(例如永不关闭的数据库连接,过度使用 Vector 集合 [而不是 ArrayList])。

我想知道如何提高应用程序的性能,哪些应用程序可以帮助我监控 Tomcat 性能和 Webapp 内存使用情况。

我们很乐意接受所有建议。

最佳答案

你也可以试试 stagemonitor .它是一个开源的性能监控库。它记录请求响应时间、JVM 指标、请求详细信息,包括请求期间被调用方法的调用堆栈(配置文件)等。由于开销低,您还可以在生产中使用它。

调整过程如下。

  • 使用请求仪表板识别缓慢的请求 request dashboard
  • 使用 Request Detail Dashboard 分析请求的堆栈跟踪了解慢速方法
  • 深入研究您的代码并尝试优化那些缓慢的方法
  • 您还可以将吞吐量或 session 数等指标与响应时间或 CPU 使用率相关联
  • JVM Memory Dashboard 分析堆

注:我是stagemonitor的开发者

关于Java Webapp 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com