|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Собственно апач приходится все время ребутать, т.к. жрет по полной память или цп на сервере. Я в этом практически не разбираюсь, очень нужна помощь. Есть тут шарящие люди? Помогите плз. Какую инфу надо предоставить, то напишите (да, все с познаниями у меня плохо в этом). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 16:09 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, удалите проект который стоит на нем. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 16:52 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Tsyklop, не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:07 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixTsyklop, не понял. Сам по себе Tomcat грузить не может. Грузить может то что на нем запущено. то бишь приложения. Они находятся в папке webapp. Или уберите их из той папки или правьте ваши приложения что бы не жрали много памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:10 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Tsyklop, а как поправить тут никто не объяснит? Просто накинули на меня это, а я не разбираюсь, а исправить проблему надо. Удалять же не вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:14 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixTsyklop, а как поправить тут никто не объяснит? Просто накинули на меня это, а я не разбираюсь, а исправить проблему надо. Удалять же не вариант. Ну. тут нет ванг которые могут как-то узнать что там написано и что там делается. Нужны исходники. Выложите сюда исходники, может кто и сделает. Но скорее всего такую большую работу за бесплатно никто не будет делать. (Там явно не в переменной дело) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:41 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Да не все так сложно. Начать можно с создания дампа памяти, открыть его в Eclipse Memory analyser, найти утечку и пофиксить ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:53 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Стратегия описана тут - https://dzone.com/articles/how-to-find-and-fix-memory-leaks-in-your-java-appl Читаем, пробуем спрашиваем конкретные детали ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:54 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
забыл ник, сделает он дамп. дальше то что? человек не шарит в коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 17:59 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Tsyklopзабыл ник, сделает он дамп. дальше то что? человек не шарит в коде. Вариантов несколько: 1) Если очень надо и человек технический, то разберется пройдя по другим ссылкам. Главное найти откуда начать, что я ему и предоставил 2) Ничего не поймет и тут уже он поймет что либо он нессотвествует квалификации, либо надо кому-то заплатить кто шарит. Карты в руки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 18:02 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, Если тормозит не апач, а томкат за ним, то в админке томката снять галку по очереди с приложений пока не перестанет тормозить. Способ для домохозяйки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 18:40 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, можно начать с утилит для мониторинга java запускаешь томкат с доступным JMX https://tomcat.apache.org/tomcat-7.0-doc/monitoring.html#Enabling_JMX_Remote ! если мониторинг утилита запущена на одном компе с томкатом то активировать JMX не надо запускаешь мониторинг утилиту доступные в jdk: jconsole либо jmc либо мне больше нравится опенсорсная https://visualvm.github.io/ (есть и другие утилиты для мониторинга java-машины через JMX) коннектишься к томкату и смотришь всякие параметры ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 17:02 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
забыл ник, а при получения дампа приложение будет недоступно? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 09:37 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Tsyklop, исходники это какие именно файлы? А по логам можно определить как-то в чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 09:40 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Dmitry., там есть мониторинг netxms. А на сервер туда ниче не поставить (нельзя). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 09:42 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
С наскоку у вас ничего не получится, всё гораздо глубже, чем вы себе представляете. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 10:14 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
NixicС наскоку у вас ничего не получится, всё гораздо глубже, чем вы себе представляете.дампы и мониторинг не надо предлагать. Только логи и админку ГУИ с картинками. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 10:51 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixА по логам можно определить как-то в чем проблема?Шанс есть. Пробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 10:52 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixTsyklop, исходники это какие именно файлы? А по логам можно определить как-то в чем проблема? Где-то, у кого-то должен быть проект исходный. Исходники это не с компелированные файлы Java. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 11:03 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, а в netxms настроен мониторинг JVM томката? https://www.netxms.org/documentation/adminguide/jvm-monitoring.html кроме того netxms не показывает объекты в памяти... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 13:58 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, и еще. jconsole и jmc устанавливать не надо. ини идут вместе с джавой ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 14:00 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, эээм, там несколько папок с логами... Какие именно логи нужно проверять? на диске С в папке томката логи: localhost, local_host_access, catalina. На диске D в папке томката: tomcat7-stderr, tomcat7-stdout, commons-daemons. Также на диске D в webapps/fx логи. Я не знаю, но вроде в localhost или tomcat7-stderr. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 16:08 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Dmitry., там netxms только по ram, cpu, места на диске и т.п. JVM там нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 16:11 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixPetro123, эээм, там несколько папок с логами... Какие именно логи нужно проверять? на диске С в папке томката логи: localhost, local_host_access, catalina. На диске D в папке томката: tomcat7-stderr, tomcat7-stdout, commons-daemons. Также на диске D в webapps/fx логи. Я не знаю, но вроде в localhost или tomcat7-stderr.уже молодец). Теперь скопируй все или поиск по маске в них слова error, warning. И дату смотри. Это уже сам. Программист не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 17:26 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, Выше говорил, в админке есть вкладка Логи. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 17:27 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, насчет админки я даун и не понял(. В файлах нет ничего такого, чтобы запустить, тогда получается через браузер? Единственное, что можно запустить это Configure tomcat, в котором конфиги, которые как вроде должны быть в setenv.bat, а файла этого самого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 17:36 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixPetro123, насчет админки я даун и не понял(. В файлах нет ничего такого, чтобы запустить, тогда получается через браузер? Единственное, что можно запустить это Configure tomcat, в котором конфиги, которые как вроде должны быть в setenv.bat, а файла этого самого нет.Работающий сервер веб-приложений будет ожидать входящие подключения на порт 8080. Это можно проверить, если в адресной строке браузера набрать http://localhost:8080 (рис. 1). http://www.4stud.info/networking/work10.html ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 17:45 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, а ну там нет самой вкладки логи, там просто приложение. В системных настройках нашел консоль и другие разделы. А в логе локалхоста примерно на то время, когда вся память жралась было WARNING: Servlet FxServlet is currently unavailable ноя 12, 2018 5:09:40 PM org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet FxServlet threw exception java.lang.NullPointerException и т.д. Там дальше строки все тоже нужны до след записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 09:52 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixPetro123, а ну там нет самой вкладки логи, там просто приложение.может я с другим спутал. Но приложения то есть там? И галкой их выключить можно чтобы решить что тормозит. Мог бы и скрины дать. Ведб не программист же)) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:01 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, naumen service desk. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:11 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, ну и системные настройки ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:12 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, еще сейчас не сервере приложения нашел в папке файлы с название hs_err_pid. Там что-то типа описание ошибки и ее решения: # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 60080 bytes for Chunk::new # Possible reasons: # The system is out of physical RAM or swap space # In 32 bit mode, the process size limit was hit # Possible solutions: # Reduce memory load on the system # Increase physical memory or swap space # Check if swap backing store is full # Use 64 bit Java on a 64 bit OS # Decrease Java heap size (-Xmx/-Xms) # Decrease number of Java threads # Decrease Java thread stack sizes (-Xss) # Set larger code cache with -XX:ReservedCodeCacheSize= # This output file may be truncated or incomplete. # # Out of Memory Error (allocation.cpp:328), pid=3920, tid=4932 # # JRE version: 7.0_21-b11 # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.21-b01 mixed mode windows-amd64 ) # Failed to write core dump. # и т.д. Как такой файл формируется и есть от него польза в моем случае?) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:29 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, Я ссыль давал на админку томката. Если у вас томкат. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:45 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, ну если на сервере приложения в браузере вбивать именно http://localhost:8080/ , то вот что выдает (скрин). А если вбиваю http://localhost:8080/fx , то в наумен кидает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:52 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, Адрес томката это ваш хлеб на работе, а не форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:57 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, И на будущее, не показывай скрины другого вместо того о чем контекст. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:00 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, ээм, не понял) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:05 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixPetro123, ээм, не понял)все ты понял. Скрины томката были нужны, а не то что ты вывалил. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:08 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, если Вы к тому, что я на работе иду на форум за помощью, то я с этим не должен был работать, брали изначально не для этого, а вынужденно передали мне решить проблему, т.к. люди которые этим занимались уволились и никто не шарит (я в том числе). Сам не могу разобраться, решил вот на форуме помощи поискать. Что в этом такого? Я бы рад сам все сделать, но увы не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:22 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, Логи смотрел, молодец. Повтори ошибку и точно свяжи с выбросом в лог варнинг. Админку томката адрес сам ищи. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:13 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixнашел в папке файлы с название hs_err_pid. Там что-то типа описание ошибки и ее решения: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Последняя публичная - update 80. Если же вернуться к исходной проблеме, то почему нельзя добавить 1МБ к значению -Xmx в параметрах запуска котяры? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:50 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, не знаю принципиально или нет, но если не обновляли, то возможно так и задумано. А этот hs_err_pid старый, я просто привел как пример, думал узнать как такой же сделать/получить. Petro123, в server.xml висит порт 8080, но я еще покапаюсь, поищу, может не там смотрю. "Повтори ошибку" в смысле? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 15:06 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, Связь между варнингом выше и ошибкой проблемой есть? Так понятно? Например, вчера пил и утром голова болит. Связь есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 15:57 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, короче не получается толком разобраться, возможные варианты решения проблемы нашел, но не факт, что поможет. У меня другой вопрос: можете посоветовать хорошую литературу почитать по этой теме, пожалуйста? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 10:29 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixхорошую литературуне могу. Слишком общий вопрос, и между прогером и админом к тому же. А вы вроде вообще не прогер. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 10:37 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, ну азы к примеру по яве? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 11:37 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixPetro123, ну азы к примеру по яве?основной метод обучения - самостоятельное. Находите тему: Программирование на Java web, с чего начать - jsp? сервлет? и так далее Там все есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 12:20 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Petro123, окей, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 12:25 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Basil A. SidorovЕсли же вернуться к исходной проблеме, то почему нельзя добавить 1МБ к значению -Xmx в параметрах запуска котяры? IMHO Не поможет. Точнее сделает еще хуже metrodixнашел в папке файлы с название hs_err_pid. Там что-то типа описание ошибки и ее решения: Код: plaintext 1. 2. 3.
Обломилась Native memory allocation, память в операционной системе закончилась, поэтому java и упала Т.ч. память выделенная для JVM нужно наоборот __уменьшать__ (увеличивать память доступную для системы) или добавить/докупить памяти в компьютер. IMHO & AFAIK Просмотрел ветку еще раз, даже конфигурацию компьютера и настроек томката так и не было а вообще, правильные ответы уже давали: 21733360 21734415 но при подходе "я не умею, но сделать нужно" и "на сервер ничего ставить нельзя" - можно только посоветовать купить бубен, может поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 13:42 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, ну мне сказали найти решение проблемы, а ставить ничего не надо, надеюсь позволят потом, а то это бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 14:20 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Напиши по крайне мере конфигурацию сервера. Сколько процессоров, памяти Что запущено Сколько выделено под JVM, ключи в строке запуска или посмотреть через JConsole Базовые средства - есть в самой Java (JConsole). JDK можно тупо скопированием в свой home директорий, инсталятор запускать не нужно, т.е. операция совершенно безопасная. Подключаться удобнее на самом сервере. Т.е. можно конечно сконфигурировать удаленное управление/настройку/мониторинг/отлатку, но это нужно разбираться и иметь "прямые руки" у админов (в том числе на уровне ОС, SSH, виртуалок, маршрутизаторов как минимум разрешить прохождение/проброс нужных портов). Т.ч. самое простое: 1) прямо на сервере посмотреть командами ОС (например банальный top) что с памятью в системе, чем она забита. Админы это уметь должны. Падает именно по нехватке памяти ОС! 2) JConsole посмотреть что с памятью в Java. Лучше под реальной нагрузкой. 3) Запинать начальство, что бы оно поискало, какие были требования/рекомендации от разработчиков. Если раньше работало стабильно, а сейчас стало падать - скорее всего что-то поменялось. Может пользователей добавилось - может просто требуется добавить памяти в сервак/поставить новый. Если же действительно утечки памяти - то или обращаться к раззработчикам или нанимать Java программиста. Исходники конечно желательны, но в принципе, можно и декомпилятором классы декомпилировать. IMHO & AFAIK сорри за много-букв в общем, в порядке обратном написанному в ветке: 1. Посмотреть память командами ОС 2. JConsole сообщение 21734415 3. Найти где настраиваются ключи запуска JVM добавить туда: максимально подробный лог GC - по логу можно построить график потребления памяти генерацию дампа памяти при падении или по Ctrl-C 4. попытаться настроить ключи JVM GC. Как минимум, __уменьшать__ память, что бы по native memory alocation не падали. Сколько настраивать памяти, будет понятно по 1 + 2 настроить память -Xms равные -Xmx (константой), уменьшить(поставить константой) PermGen / Metaspace, уменьшить (поставить константой) Non heap Я бы убрал "automatic memory management, java умная, ей виднее" и жестко настроил eden и old gen Когда упадете по нормальной java out of memory (не native): 1. поставить перед начальством вопрос о докупить памяти 2. можно смотреть дамп. 21733360 Если раньше работало нормально, то возможно метод "докупить память в сервер" - будет самым дешевым решением ))) IMHO & AFAIK еще раз ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 15:10 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, на скрине есть все, что нужно по конфигурации сервера? Где посмотреть сколько выделяется под JVM? С native memory allocation старый файл, я просто хотел узнать, как подобный можно сформировать/получить. Как подключить томкат к jvm? Насчет требований от разрабов: они давным-давно поддерживали приложение, но потом от их услуг отказались, а у нас, кто этим занимались - ушли (говорили, что ВРОДЕ раньше таких проблем не было, в том плане, переодически ребутать приходилось томкат из-за сжирания всей памяти). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 11:47 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Кто там что говорил, про неправильность выделения дополнительной памяти для JVM, потому, что "её и так не хватает"? На серваке свободно 12 гигабайт из 64, а несчастному котяре, от щедрот, выделили всего четвертушку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 12:22 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Basil A. SidorovКто там что говорил, про неправильность выделения дополнительной памяти для JVM..... Как бы ошибка говорила. Native memory allocation..... Basil A. SidorovLeonid Kudryavtsev, на скрине есть все, что нужно по конфигурации сервера? Ну смотреть параметры памяти лучше под реальной нагрузкой. В Вашем скриншоте смысла особого нет, т.к. видно, что JVM недавно запущена. Вроде JConsole еще показывает с какими параметрами (ключами строки запуска), работает JVM. 1) по скрину можно __предположить__, что на сервере всего крутиться дофига и больше. Т.е. по русски "помойка" Total phisical memory = 64 GB Free phisical memory = 17 Процессоров тоже 8 штук. Вообще-то, Java крайне плохо преспособлена для работы в режиме "выделенный сервер коллективного пользования 100500 сервисами" Дефолтные значения при запуске JVM выбираются из предположения, что JVM на сервере ОДНА. Если на сервере много процессоров и 100500 штук JVM - дефолтные параметры JVM крайне не оптимальны, избыточно и даже "бредовые" (нарывался на 40 процессорной машине). Мое IMHO, на сервере, ресурсы должны быть выделены службам раз и навсегда. Т.ч. выделить нормально памяти приложениям по __константам__. Xmx==Mms, PermGen / Metaspace - константа, NonHeapMemory - константа Тогда Java один раз при запуска память скушает и никаких native allocation в процессе работы быть не должно в принципе. 2) Maximum heap size = 233 MB для системы работающей в продакшене... ну как-то Вы сильно память жалеете ))) 3) Для настройки памяти включают максимально детальные логи GC, и на основе логов строят график за день/неделю работы под нагрузкой. Можно включить дамп памяти при наступление java-ошибки out of memory. Насчет требований от разрабов: они давным-давно поддерживали приложение, но потом от их услуг отказались, а у нас, кто этим занимались - ушли (говорили, что ВРОДЕ раньше таких проблем не было, в том плане, переодически ребутать приходилось томкат из-за сжирания всей памяти). Классика, из разряда "скупой платит дважды" Вам можно только посочувствовать. Если это действительно memory leak, то требуются знания/опыт Java и не только программирования, но и в какой-то мере легкого хакерства ))) копатся в чужом коде (еще и декомпилировать).... не радостное занятие IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 15:05 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, то скрин был на visualvm... В JConsole только на себя и visualvm конекшн есть, томкат я не пойму как подключить к visualVM. А в configure tomcat в ява опциях значения нашел: -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseParallelOldGC -XX:-UseGCOverheadLimit -Xms10240m -Xmx32768m Можно помочь с подключением томката к visualvm? В логах которые я находил в директориях не было ошибок по ООМ, если я, конечно, там смотрел. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 15:29 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevКак бы ошибка говорила. Native memory allocation.....Это многозначная ошибка и по ней ничего сказать нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 16:35 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Basil A. SidorovLeonid KudryavtsevКак бы ошибка говорила. Native memory allocation.....Это многозначная ошибка и по ней ничего сказать нельзя. В чем "многозначность" падения malloc ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 17:34 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixLeonid Kudryavtsev, то скрин был на visualvm... В JConsole только на себя и visualvm конекшн есть, томкат я не пойму как подключить к visualVM. Если локально - вообще проблем быть не должно. Возможно нужно запускаться из под того же пользователя, что и target JVM. Как это делать под linux'ом - более менее представляю, как под Windows - не очень Пальцем в небо: попытайтесь JConsole запустить по правой кнопки мышки "run as administrator" Вообще, читать доки. Лично я не помню. Подключиться локально у меня никогда проблем не было. metrodixА в configure tomcat в ява опциях значения нашел: -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseParallelOldGC -XX:-UseGCOverheadLimit -Xms10240m -Xmx32768m Попытки конфигурирования видны. Скорее всего, действительно, боролись с memory leak методом - "добавим памяти до одури". Т.к. 32 GB это достаточно "солидно" Добавить ключики генерации log'ов по GC (легко ищутся в доках/блогах). ищем в И-нет более-менее красивый анализатор логов, смотрим красивые графики ))). в директориях не было ошибок по ООМ вопрос то не в том, каких не было, а в том, по какой падаем ))) и по доке -UseGCOverheadLimit отключает генерацию Out of memory: GC Overhead limit exceeded, что при этом происходит, я не знаю, возможно Java тупо виснет в бесконечном GC. Но это будет видно по логам GC (когда их включить) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 17:54 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВ чем "многозначность" падения malloc ?В том, что причина нехватки нативной памяти может быть самой разной. С дефицитом памяти операционной системы эта ошибка никак не связана. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 18:18 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПопытки конфигурирования видны. Скорее всего, действительно, боролись с memory leak методом - "добавим памяти до одури". Т.к. 32 GB это достаточно "солидно"... и никак не вяжется с фактически выделенной для JVM памятью. "Если факты противоречат теории, то тем хуже для фактов"? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 18:21 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Basil A. Sidorov... и никак не вяжется.... Топик-стартер сюда кидает старые логи, скрины JConsole самой же JConsole и так далее.... ))) все на совести топик-стартера "то скрин был на visualvm" Basil A. SidorovВ том, что причина нехватки нативной памяти может быть самой разной. Какие? Операционная система не смогла выделить память. Да, причин почему это не смогла ОС может быть 100500: отсутствие памяти, фрагментация. закончившиеся дискрипторы, сбой и так далее. Но это проблемы не java, а операционной системы. Если бы java изначально, при старте, выделили всю необходимую память для работы, не было бы потребность в native алокации, не было бы и ошибки. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 18:29 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixто скрин был на visualvm... - на скрине видно что Вы подключились не к Tomcat, а к другому Java-процессу (конкретно к Netbeans), причем именно с помощью JConsole, а не VisualVM - подключайтесь по pid-у процесса, который можно в Windows увидеть в "Диспетчере задач" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 18:34 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevОперационная система не смогла выделить память. Да, причин почему это не смогла ОС может быть 100500: отсутствие памяти, фрагментация. закончившиеся дискрипторы, сбой и так далее. Но это проблемы не java, а операционной системы.Это проблемы того, кто выбрал неадекватные параметры запуска. Дальше всё работает штатно.Если бы java изначально, при старте, выделили всю необходимую память для работы, не было бы потребность в native алокации, не было бы и ошибки.С чего вдруг? Создание потока всегда будет связано с обращение нативному API. Память при этом выделяется и это память, с которой работает планировщик ОС. Ну и самое главное: в каком месте из "не могу выделить память" следует "нельзя увеличивать память для JVM"? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 18:40 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Kachalov, да, это я понял, что я не туда подключился. Ни в jconsole, ни в visualvm не могу к томкату подключиться. Его же прямо на компе надо открыть, томкат, если я правильно понимаю, чтобы он в доступных локальных подключениях отображался? В диспетчере, в процессах то он есть. По pid'у я не нашел как. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 16:06 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, там где работает Tomcat стоит JDK. В состав JDK входит утилита JConsole. Запускаете JConsole и первое что она Вам покажет - это список обнаруженных на машине java-процессов, один из которых сама консоль, а среди остальных надо разобраться какой Вам нужен и выбрать его. На скриншоте пример (на примере три java-процесса, но ни одного Tomcat): ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 17:01 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodix, вот то же с процессом Tomcat (Catalina): ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 17:06 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Kachalov, "там где работает Tomcat стоит JDK" - JDK должна быть именно в папке с томкатом? Если так, то я не нашел там в папках нигде JDK. Я открывал в program files/java/jdk/bin/jconsole. Там собственно только процесс консоли. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 17:19 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Kachalovтам где работает Tomcat стоит JDK - имеется в виду, что на том же компьютере, в той же ОС где выполяется Tomcat, установлена JDK (Tomcat без JDK работать не может, значит она в ОС обязательно установлена). В какой конкретно папке установлена JDK неизвестно, может в "Program Files", может где то еще, но именно в той ОС где существует процесс Tomcat. - подумайте что Вы будете делать, когда (и если), найдете источник утечки ОП. У Вас есть исходники приложения? Или допустим Вы декомпилируете проблемный класс. Что дальше? Понадобится изменять код приложения. Потом собирать его заново. Осилите? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 17:41 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Ваша проблема решается так: Порядок оказания услуг Запросы в службу поддержки принимаются от клиентов, имеющих действующий договор на услуги технической поддержки в соответствии с Регламентом поддержки. Способы подачи запросов посредством собственной страницы Заказчика в автоматизированной информационной системе Naumen Service Desk Исполнителя; по адресу электронной почты центра поддержки support@naumen.ru; по телефону центра поддержки в Екатеринбурге +7 (343) 378–42–88; по телефону центра поддержки в Москве +7 (495) 542–17–53. Заказчик при подаче запроса на поддержку по телефону или электронной почте сообщает следующие сведения: наименование организации; номер Договора на поддержку; контактное лицо, его номер телефона и адрес электронной почты; наименование системы, требующей поддержки; описание проблемы; предполагаемый приоритет проблемы (описание приоритетов приведено в действующем договоре поддержки). Подробности тут: Регламент Хоть скажите как называется глюкавый продукт: название/версия ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 17:50 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Kachalovподумайте что Вы будете делать, когда (и если), найдете источник утечки ОП+1 Аффтар! Вам не нужно лезть в область программирования. Максимум админства. Это значит целиком вкл, выкл приложения или томката. Установка приложения или томката. Иначе закройте тему и идите с миром. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 17:55 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Kachalov, "имеется в виду, что на том же компьютере, в той же ОС где выполяется Tomcat, установлена JDK (Tomcat без JDK работать не может, значит она в ОС обязательно установлена). В какой конкретно папке установлена JDK неизвестно, может в "Program Files", может где то еще, но именно в той ОС где существует процесс Tomcat." >> Ну всё так, но при запуске jconsole или visualVM видит только свои процессы, других никаких нет. "подумайте что Вы будете делать, когда (и если), найдете источник утечки ОП. У Вас есть исходники приложения? Или допустим Вы декомпилируете проблемный класс. Что дальше? Понадобится изменять код приложения. Потом собирать его заново. Осилите?" >> Если, осилю, то точно не скоро, а сейчас вряд ли. Хотя бы для начала понять с чем проблема, что исправлять. "Ваша проблема решается так:" >> От услуг тех. поддержки уже давно отказались, это не вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2018, 14:44 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
metrodixно при запуске jconsole или visualVM видит только свои процессы, других никаких нет. __Права__ Подозреваю Tomcat запущен в виде сервиса, из-за этого и не видит. 1) разбираться по доке, какие права у пользователя должны быть, что бы увидел (или что еще нужно подшаманить) 2) Или, на крайней случай, для тестирования. Остановить сервис и запустить TomCat руками под текущем пользователем. Надеюсь, тестовый сервер для тестирования / разбирательств Вам выделили ))) IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2018, 15:43 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПодозреваю Tomcat запущен в виде сервиса, из-за этого и не видит. +1 надо запустить JConsole под админом ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2018, 16:44 |
|
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
|
|||
---|---|---|---|
#18+
Документацию надо читать ... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2018, 17:17 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121621]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
1ms |
others: | 359ms |
total: | 538ms |
0 / 0 |