Управление сессиями JSF и настройка

Все,

Я занимаюсь исследованием того, как уменьшить объем памяти сеанса, которую наше приложение JSF потребляет для каждого пользователя.

Мы используем MyFaces 1.1.7 и Tomahawk 1.1.5, работающие на IBM Websphere 7.0 patch 19. (В настоящее время невозможно обновить ни один из этих элементов)

Руководство IBM заключается в том, что размер сеанса должен быть менее 5 КБ — в среднем около 2,5 КБ, чтобы не влиять на производительность сервера и репликацию сеанса. В настоящее время мы используем память в память, но рассматриваем возможность перехода на базу данных, как это было предложено IBM.

Наш сайт работал со скоростью около 35 миллионов на пользователя. Мы изменили количество состояний просмотра со 100 до 10, и это уменьшило его примерно до 4 миллионов.

У нас есть несколько поддерживающих компонентов, которые в настоящее время являются областью сеанса, и мы рассматриваем возможность их изменения для области запроса.

Я также нашел следующее: http://www.econsulting.nl/images/pdf/Tuning%20JSF%20Applications-%20J-Spring%202008.pdf, в котором содержится много информации о том, как JSF обрабатывает определенный контент на страницах. Это все еще находится в стадии расследования, чтобы убедиться, что заявленное имеет смысл.

Я также где-то читал, что независимо от того, является ли управляемый компонент поддержки сеансом или областью запроса, состояние просмотра по-прежнему будет иметь компонент и его содержимое. Таким образом, размер состояния просмотра не изменится. Ищу разъяснения по этому поводу.

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

Каковы некоторые из лучших практик по уменьшению этого размера, если таковые имеются, или это только способ использования JSF?

Проблемы с репликацией сеанса в IBM WebSphere при запуске приложения JSF?

Есть ли какая-либо документация о том, как JSF/MyFaces использует память кучи - Young vs old или ее вообще следует рассматривать в этой области? Тюнинг сборки мусора?

В результате мы видим, что в случае перехода пользователя на другой сервер данные сеанса отсутствуют из-за того, насколько велики данные и сколько времени требуется для репликации. Проблемы с пользовательским опытом.

Мы столкнулись с проблемой, из-за которой оказалось, что изменения объекта в сеансе не обновлялись должным образом, и выполнили некоторую настройку управления сеансом, в которой мы настраиваем параметры таким образом, чтобы записывались все атрибуты сеанса. Глядя на файл .jar, видно, что myFaces правильно выполняет вызов, когда содержимое объекта в сеансе изменяется. Таким образом, слушатель сеанса WebSphere должен уловить это изменение.


person boyd4715    schedule 17.10.2011    source источник
comment
Интересно, как вы уменьшили размер состояния сеанса.   -  person Ben    schedule 23.01.2012
comment
В файле web.xml есть параметр конфигурации, который позволяет уменьшить количество представлений, сохраняемых в сеансе. Недавно мы сократили до 3, и это значительно уменьшило размер пользовательского сеанса. Цель, над которой мы работаем, — размер сеанса 1M для данного пользователя. Это приведет к уменьшению количества bean-компонентов, которые входят в область сеанса, а также к переделке частей страниц на основе ссылки, предоставленной в исходной проблеме.   -  person boyd4715    schedule 23.01.2012


Ответы (1)


вы можете попробовать сохранить состояние просмотра на клиенте, но я не уверен, что MyFaces 1.1.7 уже поддерживает это

person smikesh    schedule 29.01.2012