Помогите Вылетает сервер после 2-3 дней работы. Linux.

  • Автор темы Автор темы Gixxer
  • Дата начала Дата начала

Gixxer

Активный участник
Пользователь
Баллы
76
Уже не первый раз случается.. Работает сервак дня 2, а далее выключается и такое сообщение:

Код:
start.sh: line 1: 25246 Killed                  java -XX:ParallelGCThreads=8 -Xmx20G -Xms20G -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=50 -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=50 -XX:+AggressiveOpts -jar spigot.jar
КрашРепорта нету
Кривой скрипт запуска?
 
Последнее редактирование:
Кривой просто до жути, ты сделал себе утечку памяти:
Код:
-Xmx20G -Xms20G
Под минимум отведена вся память, вот она вся и отжирается. Xms не надо указывать вообще, там по дефолту 256мб. Максималку тоже надо уменьшить, если процесс убит, значит была попытка съесть больше, чем доступно (в этом можно убедится глянув системный лог, но не помню какой именно, возможно messages). Должно оставаться хотя бы 200мб свободной памяти.

20гб под один сервер это как-то совсем дико, что там такого тяжелого?
 
Кривой просто до жути, ты сделал себе утечку памяти:
Код:
-Xmx20G -Xms20G
Под минимум отведена вся память, вот она вся и отжирается. Xms не надо указывать вообще, там по дефолту 256мб. Максималку тоже надо уменьшить, если процесс убит, значит была попытка съесть больше, чем доступно (в этом можно убедится глянув системный лог, но не помню какой именно, возможно messages). Должно оставаться хотя бы 200мб свободной памяти.

20гб под один сервер это как-то совсем дико, что там такого тяжелого?
Памяти 32гб всего
Ребят.. Я не спорю. Я по джаве и всем этим запускаторам бум-бум.
Подскажите как правильно)


260-300 игроков. Думал лучше будет. Это мой первый опыт с таким онлайном. Скрипт скопировал со спигота из темы оптимизации. Но там было 8гб, а я и увеличил.
Сервак работает нормально, без проседания тпс и тд. Но через дня 2-3 безпрерывной работы, утром, когда онайл около 100 бывают вылеты.
 
Последнее редактирование:
-Xms удали нафиг
и чтобы вытянуть такой онлайн проц должен быть очень мощным
 
-Xms удали нафиг
и чтобы вытянуть такой онлайн проц должен быть очень мощным
какая разница что указано в xms? это не утечка и к крашу не приводит.
скрипт запуска это одна строка, которую ты написал? где брал такие опции? вроде как достаточно -XX:+UseG1GC, не уверен, что остальные дают хоть какой-то полезный эффект. у тебя реально 32 гига на машинке и ничего больше не есть их, кроме этого сервера?
 
java -server -d64 -Xincgc -Xmx20G -jar server.jar
Проверь без агрессивных опций запуска. В основном, они нужны для слабых машин.
Кривой просто до жути, ты сделал себе утечку памяти:
-Xms не дает никакого эффекта, он тупо сразу выделяет все 20 гигов. Никакая это не утечка, учитывая что на сервере 32 гига оп.п., то ничего страшного.
 
java -server -XX:+UseG1GC -Xmx16G -jar server.jar

Давайте остановимся на этом варианте.
 
Краша нет, потому что, что-то убивает процесс явы. Пробуй строку запуска сделать как тебе привели выше, если не поможет, то это ограничения со стороны хостинга.
 
какая разница что указано в xms? это не утечка и к крашу не приводит.
-Xms не дает никакого эффекта, он тупо сразу выделяет все 20 гигов
Если в -Xms указать то же, что и в -Xmx, вся память сожрется и процесс отвалится из-за нехватки памяти. На этих граблях уже много новичков полегло.
man java
-Xmssize
Sets the initial size (in bytes) of the heap. This value must be a multiple
of 1024 and greater than 1 MB. Append the letter k or K to indicate
kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes.

The following examples show how to set the size of allocated memory to 6 MB
using various units:

-Xms6291456
-Xms6144k
-Xms6m

If you do not set this option, then the initial size will be set as the sum
of the sizes allocated for the old generation and the young generation. The
initial size of the heap for the young generation can be set using the -Xmn
option or the -XX:NewSize option.
 
Ты мне щас показал ман, как выделять память процессу java. Про опцию -Xmx и
Если в -Xms указать то же, что и в -Xmx, вся память сожрется и процесс отвалится из-за нехватки памяти.
ни слова.
 
Если в -Xms указать то же, что и в -Xmx, вся память сожрется и процесс отвалится из-за нехватки памяти. На этих граблях уже много новичков полегло.
боже я даже спорить не буду
ну ладно буду. единственное, что плохо при xms == xmx это то, что если приложению не нужна вся эта память, оно ее все равно будет использовать. причем тут отвал процесса из-за нехватки памяти? если ему нужно, он сам будет расширять размер кучи, пока не достигнет xmx. если машинка позволяет выделить 20 гигов процессу и они больше никому не нужны, то почему бы их сразу не отдать?
скорее всего тут прав alexandrage, система просто считает что процесс жрет слишком много и грохает его. или специально настроена, чтобы убивать прожорливые процессы. возможно у тебя на машинке ограничение есть, что нельзя жрать слишком много процессора.
а память тут наверно совсем не при чем. заканчивание памяти приводит либо к OOM, если куча слишком мала, либо к краху jvm со всеми логами и дампами, если в системе в принципе закончилась оперативка
 
Вдска? Тогда это нормально, ограничение срабатывает.
Дедик
Обычный чистый дедик. Установлена Java 8 и всё.
И почему он киляет их через 2-3 дня? Тут скорее всего много всяких лишних параметров, возможно даже кривые есть)
java -server -XX:+UseG1GC -Xmx16G -jar server.jar
Давайте остановимся на этом варианте.
Можно подробнее про
-server
и
-XX:+UseG1GC (на сколько знаю это сборщик мусора)
 
Последнее редактирование:
Да, забыл про стактрейсы. Но это все равно не эффективно, какая вообще должна быть сборка чтобы ей 20гб надо было?

/var/log/messages
там должна быть инфа про килл
 
Такая же проблема. На сервер выделено 4 GB. (java -jar -Xmx4G Xms4G -jar spigot.jar). Сервер постепенно, даже при 0-5 онлайна сжирает память. На следующий день уже съедено 5 ГБ, а уже через неделю он совсем падает. (Просто пишет Killed) В то же время, Essentials этого не показывает:
Код:
[23:25:47 INFO]: Максимум памяти: 4 071 MB.
[23:25:47 INFO]: Выделено памяти: 4 071 MB.
[23:25:47 INFO]: Свободной памяти: 2 564 MB.
 
Такая же проблема. На сервер выделено 4 GB. (java -jar -Xmx4G Xms4G -jar spigot.jar). Сервер постепенно, даже при 0-5 онлайна сжирает память. На следующий день уже съедено 5 ГБ, а уже через неделю он совсем падает. (Просто пишет Killed) В то же время, Essentials этого не показывает:
Код:
[23:25:47 INFO]: Максимум памяти: 4 071 MB.
[23:25:47 INFO]: Выделено памяти: 4 071 MB.
[23:25:47 INFO]: Свободной памяти: 2 564 MB.
Killed - это не падает, а что-то\кто-то завершает процесс, например у тебя VDS, и хост считает что ты нагружаешь соседей и убивает твой процесс.
 
Killed - это не падает, а что-то\кто-то завершает процесс, например у тебя VDS, и хост считает что ты нагружаешь соседей и убивает твой процесс.
скорее всего это oom-killer, как у ТС, но почему он срабатывает так и осталось загадкой
http://www.go.kg/work/oom-killer.html
http://www.go.kg/work/oom-killer-2.html
 
Уже писали выше, это ограничение хоста.
Где? ТС говорил что дедик, какое нафиг ограничение. В лс выяснили по логам, что линуксовый oom-killer. Во втором случае симптомы те же, иначе был бы краш-репорт.
 
Назад
Верх Низ