我正在开发由以下技术开发的web应用程序(JSF、Spring、Hibernate、MySQL、MongoDB、Elasticsearch、Jetty和Tomcat)。我创建了一个压力测试来模拟一个用户使用的应用程序。在测试场景中,我正在为4个paralel用户运行一个压力测试,同时作为第5个用户登录并测量某些活动的系统响应时间。当应激时间不以T形式运行时,如果出现响应时间,5分钟后压力测试响应时间为2XT,30分钟后为5xT,45分钟后为10-15xT。
1小时后,我停止了测试,等待了25分钟,直到内存堆小于200 25,CPU使用率接近0%,性能略有改善,但没有太多(~7T)。一小时后,测试停止,什么都没有改变。
我的PC有8GB内存,我使用-Xms512m -Xmx4092m -XX:PermSize=512m -XX:MaxPermSize=512m运行应用程序,根据我从JVisualVM和JProfiler中发现的结果,我不认为这是内存泄漏问题。不过,我不知道还有什么问题。我希望有人能指出造成如此巨大的性能下降的可能原因,或者我应该在哪里寻找它。
提前谢谢。
发布于 2013-12-13 23:42:51
在分析了应用程序的所有方面之后,我发现Mojarra是性能下降的主要原因。Ajax的响应时间更长,而后端初始化在压力测试后保持不变。从Mojarra 2.1.9转到2.2.0之后,问题就消失了,我相信这与JSF页面的复杂性以及Mojarra如何处理一个页面上的大量组件有关。
https://stackoverflow.com/questions/20234839
复制相似问题