powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
74 сообщений из 74, показаны все 3 страниц
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732538
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно апач приходится все время ребутать, т.к. жрет по полной память или цп на сервере. Я в этом практически не разбираюсь, очень нужна помощь. Есть тут шарящие люди? Помогите плз. Какую инфу надо предоставить, то напишите (да, все с познаниями у меня плохо в этом).
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732573
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
metrodix,
удалите проект который стоит на нем.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732581
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tsyklop,
не понял.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732582
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
metrodixTsyklop,
не понял.
Сам по себе Tomcat грузить не может. Грузить может то что на нем запущено. то бишь приложения. Они находятся в папке webapp.
Или уберите их из той папки или правьте ваши приложения что бы не жрали много памяти
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732584
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tsyklop,
а как поправить тут никто не объяснит? Просто накинули на меня это, а я не разбираюсь, а исправить проблему надо. Удалять же не вариант.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732597
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
metrodixTsyklop,
а как поправить тут никто не объяснит? Просто накинули на меня это, а я не разбираюсь, а исправить проблему надо. Удалять же не вариант.

Ну. тут нет ванг которые могут как-то узнать что там написано и что там делается. Нужны исходники. Выложите сюда исходники, может кто и сделает. Но скорее всего такую большую работу за бесплатно никто не будет делать. (Там явно не в переменной дело)
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732611
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не все так сложно.

Начать можно с создания дампа памяти, открыть его в Eclipse Memory analyser, найти утечку и пофиксить
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732614
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стратегия описана тут - https://dzone.com/articles/how-to-find-and-fix-memory-leaks-in-your-java-appl

Читаем, пробуем спрашиваем конкретные детали
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732619
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник, сделает он дамп. дальше то что? человек не шарит в коде.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732624
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopзабыл ник, сделает он дамп. дальше то что? человек не шарит в коде.
Вариантов несколько:
1) Если очень надо и человек технический, то разберется пройдя по другим ссылкам. Главное найти откуда начать, что я ему и предоставил
2) Ничего не поймет и тут уже он поймет что либо он нессотвествует квалификации, либо надо кому-то заплатить кто шарит.
Карты в руки
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39732649
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
Если тормозит не апач, а томкат за ним, то в админке томката снять галку по очереди с приложений пока не перестанет тормозить.
Способ для домохозяйки.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733119
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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)

коннектишься к томкату и смотришь всякие параметры
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733323
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник, а при получения дампа приложение будет недоступно?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733325
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tsyklop, исходники это какие именно файлы? А по логам можно определить как-то в чем проблема?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733326
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry., там есть мониторинг netxms. А на сервер туда ниче не поставить (нельзя).
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733339
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С наскоку у вас ничего не получится, всё гораздо глубже, чем вы себе представляете.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733355
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicС наскоку у вас ничего не получится, всё гораздо глубже, чем вы себе представляете.дампы и мониторинг не надо предлагать.
Только логи и админку ГУИ с картинками.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733356
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixА по логам можно определить как-то в чем проблема?Шанс есть. Пробуйте.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733362
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
metrodixTsyklop, исходники это какие именно файлы? А по логам можно определить как-то в чем проблема?
Где-то, у кого-то должен быть проект исходный. Исходники это не с компелированные файлы Java.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733515
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,

а в netxms настроен мониторинг JVM томката?

https://www.netxms.org/documentation/adminguide/jvm-monitoring.html

кроме того netxms не показывает объекты в памяти...
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733516
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,

и еще. jconsole и jmc устанавливать не надо. ини идут вместе с джавой
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733631
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, эээм, там несколько папок с логами... Какие именно логи нужно проверять? на диске С в папке томката логи: localhost, local_host_access, catalina. На диске D в папке томката: tomcat7-stderr, tomcat7-stdout, commons-daemons. Также на диске D в webapps/fx логи. Я не знаю, но вроде в localhost или tomcat7-stderr.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733636
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry., там netxms только по ram, cpu, места на диске и т.п. JVM там нету.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733706
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixPetro123, эээм, там несколько папок с логами... Какие именно логи нужно проверять? на диске С в папке томката логи: localhost, local_host_access, catalina. На диске D в папке томката: tomcat7-stderr, tomcat7-stdout, commons-daemons. Также на диске D в webapps/fx логи. Я не знаю, но вроде в localhost или tomcat7-stderr.уже молодец).
Теперь скопируй все или поиск по маске в них слова error, warning. И дату смотри.
Это уже сам. Программист не нужен.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733707
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
Выше говорил, в админке есть вкладка Логи.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733714
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, насчет админки я даун и не понял(. В файлах нет ничего такого, чтобы запустить, тогда получается через браузер? Единственное, что можно запустить это Configure tomcat, в котором конфиги, которые как вроде должны быть в setenv.bat, а файла этого самого нет.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733721
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixPetro123, насчет админки я даун и не понял(. В файлах нет ничего такого, чтобы запустить, тогда получается через браузер? Единственное, что можно запустить это Configure tomcat, в котором конфиги, которые как вроде должны быть в setenv.bat, а файла этого самого нет.Работающий сервер веб-приложений будет ожидать входящие подключения на порт 8080. Это можно проверить, если в адресной строке браузера набрать http://localhost:8080 (рис. 1).
http://www.4stud.info/networking/work10.html
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733888
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
и т.д.
Там дальше строки все тоже нужны до след записи?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733895
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixPetro123, а ну там нет самой вкладки логи, там просто приложение.может я с другим спутал.
Но приложения то есть там?
И галкой их выключить можно чтобы решить что тормозит.
Мог бы и скрины дать. Ведб не программист же))
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733899
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, naumen service desk.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733902
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
metrodix, ну и системные настройки
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733916
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
#

и т.д. Как такой файл формируется и есть от него польза в моем случае?)
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733930
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,

Я ссыль давал на админку томката. Если у вас томкат.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733935
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, ну если на сервере приложения в браузере вбивать именно http://localhost:8080/ , то вот что выдает (скрин). А если вбиваю http://localhost:8080/fx , то в наумен кидает.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733941
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
Адрес томката это ваш хлеб на работе, а не форум.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733944
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
И на будущее, не показывай скрины другого вместо того о чем контекст.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733948
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, ээм, не понял)
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733949
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixPetro123, ээм, не понял)все ты понял. Скрины томката были нужны, а не то что ты вывалил.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39733962
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, если Вы к тому, что я на работе иду на форум за помощью, то я с этим не должен был работать, брали изначально не для этого, а вынужденно передали мне решить проблему, т.к. люди которые этим занимались уволились и никто не шарит (я в том числе). Сам не могу разобраться, решил вот на форуме помощи поискать. Что в этом такого? Я бы рад сам все сделать, но увы не могу.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39734002
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
Логи смотрел, молодец. Повтори ошибку и точно свяжи с выбросом в лог варнинг.
Админку томката адрес сам ищи.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39734050
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixнашел в папке файлы с название hs_err_pid. Там что-то типа описание ошибки и ее решения:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 60080 bytes for Chunk::new
...
#  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
Java7 update 21 это принципиально?
Последняя публичная - update 80.

Если же вернуться к исходной проблеме, то почему нельзя добавить 1МБ к значению -Xmx в параметрах запуска котяры?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39734175
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, не знаю принципиально или нет, но если не обновляли, то возможно так и задумано. А этот hs_err_pid старый, я просто привел как пример, думал узнать как такой же сделать/получить.


Petro123, в server.xml висит порт 8080, но я еще покапаюсь, поищу, может не там смотрю. "Повтори ошибку" в смысле?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39734218
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
Связь между варнингом выше и ошибкой проблемой есть?
Так понятно?
Например, вчера пил и утром голова болит. Связь есть?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738385
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, короче не получается толком разобраться, возможные варианты решения проблемы нашел, но не факт, что поможет. У меня другой вопрос: можете посоветовать хорошую литературу почитать по этой теме, пожалуйста?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738387
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixхорошую литературуне могу. Слишком общий вопрос, и между прогером и админом к тому же.
А вы вроде вообще не прогер.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738431
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, ну азы к примеру по яве?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738471
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixPetro123, ну азы к примеру по яве?основной метод обучения - самостоятельное.
Находите тему:
Программирование на Java web, с чего начать - jsp? сервлет? и так далее
Там все есть.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738475
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, окей, спасибо!
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738549
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕсли же вернуться к исходной проблеме, то почему нельзя добавить 1МБ к значению -Xmx в параметрах запуска котяры?

IMHO Не поможет. Точнее сделает еще хуже

metrodixнашел в папке файлы с название hs_err_pid. Там что-то типа описание ошибки и ее решения:
Код: plaintext
1.
2.
3.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 60080 bytes for Chunk::new


Обломилась Native memory allocation, память в операционной системе закончилась, поэтому java и упала

Т.ч. память выделенная для JVM нужно наоборот __уменьшать__ (увеличивать память доступную для системы) или добавить/докупить памяти в компьютер.

IMHO & AFAIK

Просмотрел ветку еще раз, даже конфигурацию компьютера и настроек томката так и не было

а вообще, правильные ответы уже давали:
21733360
21734415
но при подходе "я не умею, но сделать нужно" и "на сервер ничего ставить нельзя" - можно только посоветовать купить бубен, может поможет.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738580
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, ну мне сказали найти решение проблемы, а ставить ничего не надо, надеюсь позволят потом, а то это бред.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39738625
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши по крайне мере конфигурацию сервера.
Сколько процессоров, памяти
Что запущено
Сколько выделено под 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 еще раз
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739021
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, на скрине есть все, что нужно по конфигурации сервера? Где посмотреть сколько выделяется под JVM? С native memory allocation старый файл, я просто хотел узнать, как подобный можно сформировать/получить. Как подключить томкат к jvm?
Насчет требований от разрабов: они давным-давно поддерживали приложение, но потом от их услуг отказались, а у нас, кто этим занимались - ушли (говорили, что ВРОДЕ раньше таких проблем не было, в том плане, переодически ребутать приходилось томкат из-за сжирания всей памяти).
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739046
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто там что говорил, про неправильность выделения дополнительной памяти для JVM, потому, что "её и так не хватает"?
На серваке свободно 12 гигабайт из 64, а несчастному котяре, от щедрот, выделили всего четвертушку.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739174
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739191
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, то скрин был на visualvm... В JConsole только на себя и visualvm конекшн есть, томкат я не пойму как подключить к visualVM. А в configure tomcat в ява опциях значения нашел:
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:+UseParallelOldGC
-XX:-UseGCOverheadLimit
-Xms10240m
-Xmx32768m

Можно помочь с подключением томката к visualvm? В логах которые я находил в директориях не было ошибок по ООМ, если я, конечно, там смотрел.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739238
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКак бы ошибка говорила.
Native memory allocation.....Это многозначная ошибка и по ней ничего сказать нельзя.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739289
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovLeonid KudryavtsevКак бы ошибка говорила.
Native memory allocation.....Это многозначная ошибка и по ней ничего сказать нельзя.
В чем "многозначность" падения malloc ?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739308
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 (когда их включить)
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739329
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВ чем "многозначность" падения malloc ?В том, что причина нехватки нативной памяти может быть самой разной.
С дефицитом памяти операционной системы эта ошибка никак не связана.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739332
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПопытки конфигурирования видны. Скорее всего, действительно, боролись с memory leak методом - "добавим памяти до одури". Т.к. 32 GB это достаточно "солидно"... и никак не вяжется с фактически выделенной для JVM памятью.
"Если факты противоречат теории, то тем хуже для фактов"?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739338
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov... и никак не вяжется....
Топик-стартер сюда кидает старые логи, скрины JConsole самой же JConsole и так далее.... )))
все на совести топик-стартера "то скрин был на visualvm"

Basil A. SidorovВ том, что причина нехватки нативной памяти может быть самой разной.

Какие?

Операционная система не смогла выделить память.

Да, причин почему это не смогла ОС может быть 100500: отсутствие памяти, фрагментация. закончившиеся дискрипторы, сбой и так далее. Но это проблемы не java, а операционной системы.

Если бы java изначально, при старте, выделили всю необходимую память для работы, не было бы потребность в native алокации, не было бы и ошибки.

IMHO
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739341
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixто скрин был на visualvm...
- на скрине видно что Вы подключились не к Tomcat, а к другому Java-процессу (конкретно к Netbeans), причем именно с помощью JConsole, а не VisualVM

- подключайтесь по pid-у процесса, который можно в Windows увидеть в "Диспетчере задач"
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39739344
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevОперационная система не смогла выделить память.
Да, причин почему это не смогла ОС может быть 100500: отсутствие памяти, фрагментация. закончившиеся дискрипторы, сбой и так далее. Но это проблемы не java, а операционной системы.Это проблемы того, кто выбрал неадекватные параметры запуска.
Дальше всё работает штатно.Если бы java изначально, при старте, выделили всю необходимую память для работы, не было бы потребность в native алокации, не было бы и ошибки.С чего вдруг?
Создание потока всегда будет связано с обращение нативному API. Память при этом выделяется и это память, с которой работает планировщик ОС.
Ну и самое главное: в каком месте из "не могу выделить память" следует "нельзя увеличивать память для JVM"?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741060
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov, да, это я понял, что я не туда подключился. Ни в jconsole, ни в visualvm не могу к томкату подключиться. Его же прямо на компе надо открыть, томкат, если я правильно понимаю, чтобы он в доступных локальных подключениях отображался? В диспетчере, в процессах то он есть. По pid'у я не нашел как.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741148
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix,
там где работает Tomcat стоит JDK.
В состав JDK входит утилита JConsole.
Запускаете JConsole и первое что она Вам покажет - это список обнаруженных на машине java-процессов, один из которых сама консоль, а среди остальных надо разобраться какой Вам нужен и выбрать его.
На скриншоте пример (на примере три java-процесса, но ни одного Tomcat):
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741151
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodix, вот то же с процессом Tomcat (Catalina):
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741157
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov, "там где работает Tomcat стоит JDK" - JDK должна быть именно в папке с томкатом? Если так, то я не нашел там в папках нигде JDK.
Я открывал в program files/java/jdk/bin/jconsole. Там собственно только процесс консоли.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741178
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovтам где работает Tomcat стоит JDK
- имеется в виду, что на том же компьютере, в той же ОС где выполяется Tomcat, установлена JDK (Tomcat без JDK работать не может, значит она в ОС обязательно установлена). В какой конкретно папке установлена JDK неизвестно, может в "Program Files", может где то еще, но именно в той ОС где существует процесс Tomcat.

- подумайте что Вы будете делать, когда (и если), найдете источник утечки ОП. У Вас есть исходники приложения? Или допустим Вы декомпилируете проблемный класс. Что дальше? Понадобится изменять код приложения. Потом собирать его заново. Осилите?
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741188
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваша проблема решается так:

Порядок оказания услуг

Запросы в службу поддержки принимаются от клиентов, имеющих действующий договор на услуги технической поддержки в соответствии с Регламентом поддержки.

Способы подачи запросов

посредством собственной страницы Заказчика в автоматизированной информационной системе Naumen Service Desk Исполнителя;
по адресу электронной почты центра поддержки support@naumen.ru;
по телефону центра поддержки в Екатеринбурге +7 (343) 378–42–88;
по телефону центра поддержки в Москве +7 (495) 542–17–53.


Заказчик при подаче запроса на поддержку по телефону или электронной почте сообщает следующие сведения:

наименование организации;
номер Договора на поддержку;
контактное лицо, его номер телефона и адрес электронной почты;
наименование системы, требующей поддержки;
описание проблемы;
предполагаемый приоритет проблемы (описание приоритетов приведено в действующем договоре поддержки).


Подробности тут: Регламент

Хоть скажите как называется глюкавый продукт: название/версия
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39741193
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovподумайте что Вы будете делать, когда (и если), найдете источник утечки ОП+1
Аффтар!
Вам не нужно лезть в область программирования.
Максимум админства.
Это значит целиком вкл, выкл приложения или томката.
Установка приложения или томката.
Иначе закройте тему и идите с миром.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39742426
metrodix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov,
"имеется в виду, что на том же компьютере, в той же ОС где выполяется Tomcat, установлена JDK (Tomcat без JDK работать не может, значит она в ОС обязательно установлена). В какой конкретно папке установлена JDK неизвестно, может в "Program Files", может где то еще, но именно в той ОС где существует процесс Tomcat."
>> Ну всё так, но при запуске jconsole или visualVM видит только свои процессы, других никаких нет.

"подумайте что Вы будете делать, когда (и если), найдете источник утечки ОП. У Вас есть исходники приложения? Или допустим Вы декомпилируете проблемный класс. Что дальше? Понадобится изменять код приложения. Потом собирать его заново. Осилите?"
>> Если, осилю, то точно не скоро, а сейчас вряд ли. Хотя бы для начала понять с чем проблема, что исправлять.

"Ваша проблема решается так:"
>> От услуг тех. поддержки уже давно отказались, это не вариант.
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39742460
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metrodixно при запуске jconsole или visualVM видит только свои процессы, других никаких нет.


__Права__

Подозреваю Tomcat запущен в виде сервиса, из-за этого и не видит.

1) разбираться по доке, какие права у пользователя должны быть, что бы увидел (или что еще нужно подшаманить)

2) Или, на крайней случай, для тестирования. Остановить сервис и запустить TomCat руками под текущем пользователем. Надеюсь, тестовый сервер для тестирования / разбирательств Вам выделили )))

IMHO
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39742501
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПодозреваю Tomcat запущен в виде сервиса, из-за этого и не видит.
+1
надо запустить JConsole под админом
...
Рейтинг: 0 / 0
Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
    #39742519
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Документацию надо читать ...
...
Рейтинг: 0 / 0
74 сообщений из 74, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Apache tomcat. Как найти причину, почему может нагружаться сервер по памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]