2013-11-25 4 views
3

Я работаю над веб-приложением Java, используя следующие структуры: Spring 3.1, JSF 2.1.26 и RichFaces 4.3.3. Все приложение работает в облаке Amazon под экземплярами medium.m1 (2 ядра 2,4 ГГц), с Tomcat 7.Максимальные одновременные пользователи для JSF2?

Мой клиент задал вопросы о характеристиках веб-приложения и о количестве которые могут обрабатываться на одном сервере. Он дал мне отчет, показывающий, что сервлет с о том же оборудовании, чем средний один Amazon может обслуживать около 1000 запросов в секунду (40KB страниц): https://www.webperformance.com/library/reports/windows_vs_linux_part1/

Я взял классическую страницу с верхнего/нижнего колонтитула, таблица данных, сортировка/поиск/фильтры/скроллер данных ... (80 КБ). Я удалил базу данных, фильтры (безопасность и т. Д., Кроме JSF) и сохранил 20 видимых строк. Без нагрузки эта страница занимает около 300 мс для загрузки.

Когда я выполнил тест нагрузки для своего приложения, я понимаю, что он может обслуживать только 20 запросов в секунду до того, как время запроса/ответа превысит 1000 мс. Можете ли вы сказать мне, если это нормальное поведение? Я могу понять, что страница JSF больше времени для сборки, чем простой сервлет, но не может обслуживать более 20 запросов, в то время как сервлет может обслуживать 1 000, является загадочным.

Есть ли стандартный стандарт для типичного приложения JSF? Если вы думаете, что у меня проблема оптимизации, можете ли вы сказать мне, где я могу искать?

Заранее благодарим за ваш ответ!

+2

Вы установили 'javax.faces.FACELETS_REFRESH_PERIOD' в' -1' для производства? – BalusC

+0

Действительно, javax.faces.FACELETS_REFRESH_PERIOD - -1. Я также установил com.sun.faces.validateXml и com.sun.faces.verifyObjects в false, а com.sun.faces.numberOfViewsInSession и com.sun.faces.numberOfLogicalViews - 1 – Asterius

ответ

2

По моему личному мнению, вы должны сначала взглянуть на эту статью в JSF Central: Understanding JSF 2.0 Performance – Part 3 Код может быть найден On Github включая военные файлы, используемые при сравнении. Там вы можете найти простое веб-приложение с использованием JSF и того же приложения, реализованного в различных веб-фреймворках (Spring MVC с JSP или Thymeleaf, Tapestry, Wicket, Grails или простой сервлет с JSP).

Демо-приложение имеет простой стек с использованием базы данных в памяти (HSQLDB) и JPA, поэтому я считаю, что довольно просто развернуть их на Amazon Cloud. Это может дать вам отправную точку в отношении того, что вы можете ожидать от этой среды и как вы должны правильно настроить свою среду. Помните, что в сложной системе есть много элементов, которые влияют на производительность, поэтому вы должны оценить более поздние вещи, например, какие параметры имеют ваш уровень персистентности и т. Д.

Для JSF известно, что Apache MyFaces даст вам наилучшую производительность во всех аспектах, поэтому, если вы можете попробовать использовать комбинацию RichFaces + MyFaces.

Смежные вопросы