网站只需要在运行环境中加载页面需要很长时间,而不是本地

时间:2015-08-28 04:39:18

标签: tomcat delay latency

我是韩国的网络开发人员。

由于我们在运行的服务器上安装了Web应用程序的延迟(真实的,没有测试),我正在写这个问题。


1.部署历史

我和我的同事开发了Web应用程序(系统操作员的网站)。

我们开发并测试了它。

当我们将它部署到作为金融公司的客户的真实(运行)服务器时,我们发现我们的Web应用程序需要很长时间才能在真实服务器中加载主页。

我们将其部署了三次以纠正高延迟。

但这种现象每次都发生。

每次部署时不仅发生一次,而且每次都要求服务器加载主页或加载带有菜单栏的子页面。

首次部署时,我们猜测高延迟的原因是防火墙的配置。根据公司的政策,港口是单向的,所以我们猜对了。

在第二次部署时,该金融公司表示他们将端口方向改为双向(双向)。因此我们得出结论,端口方向不是问题。 在第二次部署时,我们用Web应用程序的STOMP新发现了ERROR日志。 所以,我们猜测问题是由STOMP引起的。

在第三次部署中,我们更新了源代码以进行更正。尽管与STOMP相关的错误消失了,仍会出现高延迟现象。


2.现象,线索

以下是问题的现象或线索。

  • 我通过Tomcat 7.0部署了Web应用程序。然后网页加载的延迟(延迟)非常高。需要20秒到1分钟。 即使加载只有登录工具(如谷歌)的主页也需要很长时间。并且在每个新的不同页面加载时,它也具有高延迟。 但该页面始终打开。

  • 我们的网络应用程序安装在Intel Zeon,CentOs和Tomcat 7.0上。

  • 在Windows 7上的其他计算机上,我尝试使用熟悉的输入191.xx.xx.xxx:7000/moduleName访问Web应用程序。 Chrome和IE发生了相同的长延迟(高延迟)。

  • 当我请求正常访问控制器时,加载时存在高延迟。 但是当我向控制器请求ajax调用时,延迟非常低,就好像我在本地运行Web应用程序一样。也就是说,ajax调用没问题。

  • Web应用程序上没有与错误日志相关的http或连接。 但是在延迟现象结束后打印出的日志结束了。 在具有正常(非常低)延迟的Ajax调用中,一旦运行该功能,就会打印出日志。

  • 当我打开Tomcat的默认页面(目录路径:... / webapps / ROOT,请求地址:: 7000 /)时,延迟正常(非常低)。

  • 我们的Web应用程序具有代理应用程序和服务器应用程序。在下面的代理应用程序源中,发生了HttpHostConnectException。


 HttpClient client = HttpClientBuilder.create().build();

HttpGet request = new HttpGet(status_url);

// add request header
request.addHeader("User-Agent", "logpulse");

HttpResponse response = client.execute(request); // EXCEPTION HERE

  • 访问实际(运行)服务器与本地(测试)服务器不同 当我在本地环境中测试应用程序时,我直接通过Filezilla上传了应用程序tar文件,并通过putty直接访问CentOS服务器。 但是,当我在运行的服务器上看到文件上传和服务器访问时,还有一步。 操作员将文件上传到不同的服务器并通过put命令,将文件上传到运行我们的Web应用程序的运行服务器。 当访问正在运行的服务器时,他访问了不同的serevr并通过telnet命令访问了正在运行的服务器。

  • 我检查过通过“top”命令运行服务器时负载很重, 我很难得出结论,它与延迟有关,因为CPU占用率在2%~3%之间,内存占用率在20%到30%之间。

  • 所有这些现象只发生在金融公司的运行环境中。但不会发生在当地环境中。


3.结束

感谢您阅读我的长篇问题。

如果您告诉我为什么加载时间太长(20秒~1分钟),我非常感谢。

更贪婪,我想知道如何在我的本地环境中重播问题。

0 个答案:

没有答案