LINUX.ORG.RU

Легковесная альтернатива Tomcat

 , , , ,


0

1

С трудом крутится у меня на сервере Tomcat 6. Tomcat 7 падает постоянно. Оба при запуске на 80 порту — Cannot allocate memory.
Смотрю на альтернативу — всё такое же жирное, даже ещё жирнее. А есть что-нибудь легковесное?

★★★★★

куда уж легче томката?

x0r ★★★★★
()

С трудом крутится у меня на сервере Tomcat 6. Tomcat 7 падает постоянно.

сам по себе он не падает, ищи причину

Оба при запуске на 80 порту — Cannot allocate memory.

Хм, надеюсь ты помнишь, что приложения без root прав не могут открыть локальные порты ниже 1024, а от рута запускать tomcat - это полный абзац?

Смотрю на альтернативу — всё такое же жирное, даже ещё жирнее.

Java, сэр. Память сейчас дешёвая, а программисты - дорогие

router ★★★★★
()
Ответ на: комментарий от router

сам по себе он не падает, ищи причину

Дык, я знаю причину. Память всю выжирает и сразу Out of Memory и Cannot allocate memory сыпет.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от router

Хм, надеюсь ты помнишь, что приложения без root прав не могут открыть локальные порты ниже 1024, а от рута запускать tomcat - это полный абзац?

Томкат стартует от специально созданного пользователя. Использую authbind, который и отбирает у сервера последние мегабайты.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Память всю выжирает и сразу Out of Memory и Cannot allocate memory сыпет.

Объём памяти, выделяемый приложениям и под perm gen cache ты задаёшь сам в JAVA_OPTS ( см. -Xmx, -Xms, -XX:ThreadStackSize и -XX:MaxPermSize )

router ★★★★★
()
Ответ на: комментарий от CYB3R

Томкат стартует от специально созданного пользователя. Использую authbind, который и отбирает у сервера последние мегабайты.

Если нет возможности поставить перед tomcat'ом nginx, можно тупо пробрасывать запросы с 80 на 8080 через iptables ( см. -j REDIRECT. Главное не путать с http редиректом, высылаемым клиенту - в отличие от него iptables сам выполняет nat, клиент даже не узнает что tomcat висит на другом порту )

router ★★★★★
()
Ответ на: комментарий от CYB3R

Можно нескромный вопрос - сколько же на сервере памяти? И, на всякий случай, ты удалил лишние приложения, которые идут с дистрибутивом tomcat'а ?

router ★★★★★
()

проблема не в томкате, он кушает поменьше ваших kde и гномов

Deleted
()
Ответ на: комментарий от derlafff

Тут, я думаю, нужно джаву пересобирать. Скомпилить с каким-нибудь uclibc и всё хорошо будет. Не?

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Боюсь что для java этого мало. Попробуй zram, может пригодится.

router ★★★★★
()
Ответ на: комментарий от CYB3R

Если используется openvz для виртуализации, проблема именно в этом. 256 мегабайт дофига и томкату хватит с головой для несложного сайта. Но Java с openvz не дружит, только xen или kvm.

Legioner ★★★★★
()
Ответ на: комментарий от derlafff

бгг, тогда при чем тут томкат, если там какаянить порнография на тяжеленном jsp со спрингами и прочим шлаком?

Deleted
()
Ответ на: комментарий от CYB3R

Jetty в atlassian bamboo реально в jvm занимает 160mb судя по javamelody, но сама jvm по умолчанию оракловская у меня из линукса который в kvm кушает 400mb

bhfq ★★★★★
()

по моим наблюдениям последняя версия томкет (7.0.37) используют память более бережно чем шестерка.

кстати еще заметил интересный эффект: если включить в JVM UseHugePages и соответствующую настройку в системе, то ява ест ощутимо меньше памяти и CPU

zensey
()
Последнее исправление: zensey (всего исправлений: 2)
Ответ на: комментарий от zensey

UseHugePages

Знаю только Large Pages (-Xlp), это оно?
Погуглил. Мне это не подойдёт:

AnonHugePages:    106496 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

CYB3R ★★★★★
() автор топика
Последнее исправление: CYB3R (всего исправлений: 2)
Ответ на: комментарий от CYB3R

на прямые руки - взять в них профайлер и поглядеть что хавает память

Deleted
()
Ответ на: комментарий от CYB3R

PHP вроде на такой виртуализации работает, про другое гугли.

Legioner ★★★★★
()

Итак, самым нежручим оказался Tomcat 7. На восьмидесятом порту ему так и не хватило памяти для запуска, но я придумал воркэраунд с iptables.
Все приложения раздеплоены, остался только manager, потребление памяти — 198Мб, на 14Мб меньше, чем Jetty.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

У них опции могут быть разные. Вкратце - выбросьте уже этот томкат

vertexua ★★★★★
()
Ответ на: комментарий от Deleted

бгг, тогда при чем тут томкат, если там какаянить порнография на тяжеленном jsp со спрингами и прочим шлаком?

ИМЕННО

vertexua ★★★★★
()

Попробуйте не приложение задеплоить в контейнер, а контейнер встроить в приложение и вызвать из main. Я пока не знаю почему они тогда по 80 метров занимают

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от CYB3R

А запульни-ка там какой-нить сишный тест, сколько реально памяти тебе сервер позволяет выжрать и на каком количестве на самом деле начинаются out of memory. Помнится, мы так же мучались на впс с мусклем, в итоге уехали на дедик, ибо оверсабскрипшн у хостера с впс, похоже, зашкаливал.

GateKeeper ★★
()
Ответ на: комментарий от CYB3R

Ты не просто malloc делай, а память выделенную потом используй.

Legioner ★★★★★
()
Ответ на: комментарий от CYB3R

256Мб памяти, свопа нет.

учится программировать. 256 метров для приложения даже java хватит на очень большой класс задач, если конечно присоединённых пользователей 1-5.
томкет можно тюнить начать можно отсюда - http://stackoverflow.com/questions/1036707/tuning-tomcat-memory-and-cpu-consu....

vtVitus ★★★★★
()
12 марта 2015 г.
Ответ на: комментарий от router

Оба при запуске на 80 порту — Cannot allocate memory.

Хм, надеюсь ты помнишь, что приложения без root прав не могут открыть локальные порты ниже 1024, а от рута запускать tomcat - это полный абзац?

man authbind

snaf ★★★★★
()
Последнее исправление: snaf (всего исправлений: 1)
Ответ на: комментарий от CYB3R

Зарегайся на Openshift.

https://www.openshift.com/products/pricing/plan-comparison

Бесплатно есть три инстанса, по 512 Мб памяти на каждый. Яву жует довольно неплохо.

И послушай iZEN, присмотрись к Go. Если ты для себя велосипедишь, а не разворачиваешь продакшен на века, то он очень няшный и легковесный.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.