2016-11-21 3 views
1

У меня есть один из узлов в облаке, в котором работает несколько java-сервисов, таких как logstash, newrelic collector и т. Д. Через несколько дней я увидел, что одна из служб мертва. вар/Журнал/сообщения говорит следующееСлужба Java убивается на Linux. Нужна помощь, чтобы понять поведение

Nov 21 9:34:26 ххх-гггг-услуги-18a ядро: Убит процесс 7912, UID 10112, (Java) всего-VM: 3912228kB, Anon-Новости: 867496kB, file-rss: 268kB

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

памяти конфигурации бесплатно -mh всего используются свободные общие буферы в кэше Mem: 3.7g 410M 144K 3,3 г 42M 392M -/+ буферы/кэш: 2,9 г 845M Swap: 0B 0B 0B

службы

Java сконфигурированы так, чтобы использовать следующие XMX значений

NewRelic -Xms256m -Xmx1024m (2 экземпляра) logstash -Xmx500m Другие услуги java: - все 5 сервисов сконфигурированы с -Xms256m -Xmx1024m

Таким образом, на основе этой конфигурации общая служба настроена на использование большего объема памяти, которая имеет такую ​​систему, которая прекрасна, если они не потребляют Это. Но мне все еще нужно понять, что могло случиться, и как я отлаживаю то, что произошло. все службы настроены на сброс кучи, но я не вижу файл ядра в любом месте (хотя это не произойдет, поскольку система не имеет памяти, чтобы даже выгрузить кучу?) Попытка понять, что произошло, и что делает var/log/сообщение означает?

Я столкнулся с этим сообщением, в котором объясняется, что процесс убит. https://unix.stackexchange.com/questions/128642/debug-out-of-memory-with-var-log-messages

может кто-нибудь объяснить, исходя из их опыта, что могло случиться?

+0

Возможно, они сконфигурированы для сброса кучи, когда они сталкиваются с * Java * OOM, а не с ядром OOM, в котором ядро ​​просто убивает процесс немедленно. Но на самом деле, это не вопрос программирования, вы должны попробовать его по ошибке Superuser/Server. – RealSkeptic

+0

Вы говорите «убитый на Linux», он отлично работает на любой другой ОС? Просто интересно, не связано ли это с «nohup» – BretC

+0

Я не знаю о другой ОС, так как мы делаем это только на Linux. – Milind

ответ

0

Это убийца OOM, убивающий процесс, так как у вас заканчивается память.

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

+1

Обратите внимание, что «больше памяти» также может означать больше swap, чего в некоторых случаях достаточно. – the8472

+0

Верно, но вы, вероятно, не хотите, чтобы сервер, на котором выполнялись важные службы, менял местами. – Kayaman

Смежные вопросы