JSF2的最大并发用户数?

时间:2013-11-25 18:31:25

标签: jsf-2

我正在使用以下框架开发Java Web应用程序:Spring 3.1,JSF 2.1.26和RichFaces 4.3.3。 整个应用程序在中型.m1实例(2 - 2.4 Ghz单核)下运行Amazon Cloud,并带有Tomcat 7。

我的客户询问了有关Web应用程序性能的问题,以及可以在同一台服务器上处理的并发用户数。 他给了我一份报告,显示一个与亚马逊媒体硬件大致相同的servlet每秒能够提供大约1000个请求(40KB页面): https://www.webperformance.com/library/reports/windows_vs_linux_part1/

我选择了带页眉/页脚,数据表,排序/搜索/过滤器/数据滚动器的经典页面...(80KB)。我删除了数据库,过滤器(安全性等,除了JSF之外)并保留了20个可见行。没有任何负载,该页面需要大约300毫秒才能加载。

当我为我的应用程序执行负载测试时,我意识到在请求/响应时间超过1000毫秒之前,它每秒只能处理20个请求。 你能告诉我这是否属于正常行为? 我可以理解一个JSF页面构建的时间比一个简单的servlet页面长,但是不能提供超过20个请求,而servlet可以服务1000个令人费解。

典型的JSF应用程序是否有任何标准基准? 如果你认为我有优化问题,你能告诉我在哪里可以搜索吗?

提前感谢您的回答!

1 个答案:

答案 0 :(得分:2)

在我个人看来,您应该首先看看JSF Central上的这篇文章:Understanding JSF 2.0 Performance – Part 3可以找到代码On Github,包括比较中使用的war文件。在那里,您可以找到一个使用JSF的简单Web应用程序,以及在不同Web框架中实现的相同应用程序(带有JSP或Thymeleaf的Spring MVC,Tapestry,Wicket,Grails或带有JSP的普通Servlet)。

演示应用程序有一个使用内存数据库(HSQLDB)和JPA的简单堆栈,因此我认为在Amazon Cloud上部署它们应该非常简单。这可以为您提供一个关于您可以从该环境中获得什么以及如何正确设置环境的起点。请记住,在复杂的系统中,有许多元素会影响性能,因此您应该稍后评估您的持久层具有哪些参数等等。

对于JSF,众所周知Apache MyFaces会在各个方面为您提供最佳性能,所以如果可以,您应该尝试使用RichFaces + MyFaces组合。