Есть ли у Struts 2 проблемы с памятью?

У меня есть веб-приложение, разработанное с помощью struts2, развернутого в tomcat 5.5. На сервере развернуты другие приложения. Но приложение, созданное с помощью struts2, работает очень медленно. Есть идеи? Как Struts 2 обрабатывает создание объектов? И есть ли что-нибудь, что я могу сделать на сервере tomecat..


person zDroid    schedule 27.07.2011    source источник


Ответы (3)


Насколько это медленно? Что ты делаешь? вы уверены, что медленный Struts 2, а не код вашего приложения? Вы занимались профилированием? Каковы результаты?

Проверьте это: http://struts.apache.org/2.2.1/docs/performance-tuning.html

Я обнаружил, что обслуживание статического контента из папки увеличило скорость.

person Allan    schedule 27.07.2011

Ну, на самом деле требуется немного деталей, чтобы кто-то мог ответить на ваш вопрос более хорошим способом.

  1. Какую версию Struts2 вы используете

  2. В каком месте/части, по вашему мнению, приложение работает медленно

по моему опыту, есть определенные области, в которых у Struts2 есть известные проблемы, OGNL сам по себе иногда создает проблемы, поскольку это часть структуры, которая занимала большую часть времени, это, как известно, было исправлено в версии 3.x OGNL, так что вы вы можете получить новую банку OGNL, а затем протестировать свое приложение. Во-вторых, используйте какой-нибудь профилировщик, и это поможет вам поймать виновника, например, любую блокировку потока и т. Д.

person Umesh Awasthi    schedule 27.07.2011
comment
Я использую Struts 2.2.0, почти каждая страница загружается медленно. Я использую версию OGNL 3.x. - person zDroid; 28.07.2011
comment
какую версию freemarker вы используете, попробуйте обновить jar freemarker, так как в некоторых случаях случай с несколькими потоками freemarker также влияет на производительность, но мое предложение простое, попробуйте использовать некоторое профилирование и проверьте, что заставляет приложение работать так медленно, так как если вы используете структуру постоянства, это также может привести к проблеме. в настоящее время мы все можем дать вам предложение, основанное на нашем опыте, но если вы предоставите информацию о профилировании, кто-то из сообщества сможет решить проблему в нужном месте. - person Umesh Awasthi; 28.07.2011
comment
Я пытался использовать профиль netbeans, но каждый раз, когда я пытаюсь запустить профилировщик, он выдает мне ошибку filterStart в журналах tomcat ... не знаю, почему? - person zDroid; 01.08.2011
comment
почему-то я понятия не имею о среде IDE netbeans и ее профилировщике :( - person Umesh Awasthi; 01.08.2011

На какой ОС работает Tomcat?

Если это Linux, возможно, вы столкнулись с проблемой отсутствия энтропии. Если эта команда возвращает меньше 200, это может объяснить вашу проблему:

cat /proc/sys/kernel/random/entropy_avail

Если он низкий (или наблюдайте во время запуска/отправки запросов), попробуйте указать /dev/random на /dev/urandom. (Не для безопасного производства, но для тестирования в Dev должно быть хорошо):

mv /dev/random /dev/random.orig
ln -s /dev/urandom /dev/random

И попробуйте снова запустить Tomcat.

person CrackerJack9    schedule 31.07.2011
comment
Я использую Linux, команда, которую вы дали, возвращает значение больше 200. - person zDroid; 01.08.2011
comment
Может быть похоже на то, с чем я столкнулся сам. Даже если значение больше 200, оно может упасть ниже во время запроса или во время запуска Tomcat. Попробуйте переместить /dev/random в /dev/random_orig и создать символику для /dev/random в /dev/urandom. - person CrackerJack9; 02.08.2011
comment
Наконец-то я узнал, как использовать профилировщик netbeans, обнаружил, что файлы jar, включенные в веб-приложение, создают утечку памяти. Можно ли что-то сделать для этого? - person zDroid; 04.08.2011
comment
Какие типы файлов jar можно переместить в библиотеку tomcat? - person zDroid; 04.08.2011
comment
Если ваши классы создают утечку памяти, вы должны это исправить. Если это jar-файлы Struts, вы должны сообщить об этом в списки рассылки Struts или в систему отслеживания ошибок. - person CrackerJack9; 04.08.2011