【问题标题】:performance issue while running the web project using tomcat使用tomcat运行Web项目时的性能问题
【发布时间】:2016-12-22 23:31:36
【问题描述】:

我在笔记本电脑上构建了一个环境,在该环境中,我在我的主操作系统(Windows 7)上构建了 tomcat 服务器,并在虚拟机上使用 Linux 操作系统上的 VMWare(Redhat 5)构建了 Oracle 服务器。

现在,当我运行我的项目时,tomcat 不断加载页面并显示“等待 localhost..” 加载动态页面(包含 oracle 数据)需要 2-3 分钟,但是,静态页面加载速度非常快.我认为连接VM Machine(数据库服务器)需要时间。

数据库连接代码

Class.forName("oracle.jdbc.driver.OracleDriver");
    String Connecting_URL = Connecting_String + "@" + DB_IP_Addr + ":" + DB_Port + ":" + Oracle_Sid;
    conn = DriverManager.getConnection(Connecting_URL,DB_UserName,DB_Password);

如何解决这个问题?

【问题讨论】:

  • 当您从 oracle 加载动态页面时,正在执行什么代码块?您是否尝试过直接对数据库运行查询?
  • 感谢 Alfabravo 的回复..我做了一级分析..实际上 SQL 查询不是罪魁祸首,因为我创建了一个没有执行任何 SQL 查询的页面..我只是创建了使用 JDBC 驱动程序的数据库连接(在主查询中添加)。这也花费了太多时间..所以,我很确定问题出在 b/w DB 服务器和 Web 服务器的连接

标签: oracle tomcat virtual-machine


【解决方案1】:

解决性能问题的关键是停止猜测并开始测量。 您进行的测量越多,您就越接近解决方案。

我要记录的第一件事是动态页面加载的开始时间戳和结束时间戳。 我还将测量运行查询所需的时间,从连接池获取连接所需的时间(您正在使用连接池,对吗?) 我会实时观看日志更新(使用 tail -f),看看浏览器发送请求的时间和动态页面开始处理的时间之间是否存在很大的时间差。我还会在查询运行时观察 Oracle 服务器上的 CPU 和 RAM 使用情况。

最后,如果查询时间是罪魁祸首,我会注销查询并在 Tomcat 环境之外运行它,并尝试通过重组查询、添加索引、获取更少数据来优化它。 Oracle 在这里可以提供很大的帮助,您可以生成查询计划并监视大型表的全表扫描和其他可能代价高昂的操作。

只有通过测量,您才能了解问题的根源。在极少数情况下,这会是非常不寻常的事情(我曾经因为配置错误的DNS而遇到过这种问题),但是您必须一一排除所有明显的可能性(我的查询很糟糕,我没有我的数据库有足够的 CPU/RAM,我没有使用连接池等...)

【讨论】:

  • 很好的建议。在某些情况下,在资源可用的情况下,甚至在您遇到问题之前就值得捕获数据,因为当您这样做时,您有证据表明“它曾经有效”,然后您可以质疑“发生了什么变化?”祝大家好运!
  • 感谢 Tony 的建议。我做了一级分析。实际上 SQL 查询不是罪魁祸首,因为我创建了一个页面,其中我没有执行任何 SQL 查询。我只是创建了使用 JDBC 驱动程序的数据库连接(在主查询中添加)。这也花费了太多时间。所以,我很确定问题出在 b/w DB 服务器和 Web 服务器的连接上。我在执行资源时检查过是否也可用。 (我的笔记本电脑上有 8 GB 内存,其中我为数据库服务器分配了 5 GB 内存)。现在,我被阻止如何解决问题。
猜你喜欢
  • 2019-11-19
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
相关资源
最近更新 更多