繁体   English   中英

GlassFish 4.1慢速本地主机Servlet响应(NetBeans)

[英]GlassFish 4.1 Slow Localhost Servlet Response (NetBeans)

我在Ubuntu 15.04上安装了Netbeans 8.0.2,其中包括GlassFish 4.1 EE容器。

由于某种原因,在确保正确设置了我的resolv.confhosts文件之后,访问动态内容(例如从SQL数据库中提取数据的servlet访问速度非常慢。

但是,访问静态JSP页面将在不到1ms的时间内返回。

在127.0.0.1或localhost上对服务器执行ping操作将在0.038ms或更短时间内返回,这是可以预期的,因此,我不认为Linux和localhost常见的DNS解析问题应归咎于此。

值得一提的是,我从他们的网站上下载了GlassFish 4.1服务器,并设置了NetBeans进行部署,得到了相同的结果。 另外,我还尝试手动部署WAR文件,这也导致动态内容/ Servlet的响应时间非常慢。

我得到的是,使用完全相同的设置和配置,我在Windows上没有此问题。

因此,总而言之:

  • 静态内容的解析和响应时间不到1ms。
  • 通过servlet的动态内容非常慢,最多5分钟。

我确实看了看是否是我的代码。 不,不是。 它可以在Windows和Windows Server上完美运行。 当服务器位于CentOS上并指向外部时,它甚至可以正常运行,即您将浏览到URL,而不是通过本地主机。


为了澄清,即使在不访问任何外部资源的servlet上也会发生此问题,例如仅添加几行HTML或将请求转发到静态JSP页面的servlet。

好,

经过大量的挖掘和分析,我找到了解决方案:

我有一个可以对用户进行身份验证的过滤器,并设置了一个针对每个请求而更改的cookie(防止CSRF),但使用了Java Utils SecureRandom将安全的随机信息注入MD5哈希算法中,以及其他一些东西,以吐出相当安全的一次性Cookie。

显然,我的生产服务器使用的CentOS版本已经包含了haveged守护进程,该守护进程使/ dev / random熵保持最高状态。

问题是Linux上的SecureRandom请求/ dev / random并被阻止。 如果没有足够的熵,它最多可能需要等待25秒才能返回。

解决方案当然是:安装haveged守护程序。 问题解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM