Показатели команды /mem /gc /lag
  • skibidi
    2 июня 2017 - 15:12
    Вы не авторизованы, войдите на сайт.
  • просмотров 12249 | ответов 14
Если на сервере установлен плагин Essentials, то после ввода команд /mem, /gc или /lag мы увидим в чате вывод показателей:

  • Аптайм — время работы сервера после включения.
  • TPS — Tick Per Second (количество тактов в секунду на сервере).
  • Максимум памяти — количество памяти, выделенной для сервера. Указывается в параметре запуска сервера -Xmx.
  • Выделено памяти — количество используемой памяти, которая требуется серверу в настоящий момент.
  • Свободной памяти — количество памяти, которую освободил сборщик мусора (Java).


Разберём подробнее четвёртый пункт: «Выделено памяти».
Многие не понимают его и думают, что их обманули с памятью. Они считают, что значение «Выделено памяти» должно быть равно значению «Максимум памяти». Это крайне неверное мнение, и складывается оно у многих неопытных пользователей и администраторов серверов Minecraft по причине неправильного перевода плагина.
Итак! Для сервера максимальная память — 10 000 мегабайт (выделить для сервера можно и больше памяти), но это не означает, что сервер сразу будет её всю использовать. Сервер не задействует больше памяти, чем ему требуется, поэтому он из 10 000 мегабайт возьмёт для начала столько, сколько нужно для работы.
Например, при запуске сервера потребовалось 484 мегабайта (как на рисунке), но по мере увеличения количества игроков на сервере карта для каждого из них будет прогружаться. Для этого серверу потребуется больше памяти. Вот тут сервер автоматически начнёт выделять для своей работы ещё памяти из максимально доступной, которая указана в третьем пункте.
На увеличение этого показателя могут влиять и другие факторы: большое количество плагинов, неправильная работа плагинов, неправильная конфигурация плагинов, безрассудный игровой процесс, постоянные огромные сеты (//set), полёты с большой скоростью (/speed 5-10) и многое другое.
Объяснить можно проще, сравнив это с ведром, водой, мальчиком Васей и его гостями.
Представим:
У вас есть пустое ведро, объём которого равен 10 литрам.
У вас есть 1 литр воды.
Мальчик Вася попросил принести ему 1 литр воды.
Вам нужно в этом ведре перенести для Васи 1 литр воды.
Но вдруг Вася сообщает, что к нему пришли гости — ещё 3 мальчика — и требуется воды уже не 1 литр, а 4.
Вы успешно помещаете всю эту воду в ведро в размере 4 литров.
Через некоторое время Василий сообщает, что гостей гораздо больше: их уже не три, а семь, и воды требуется уже 10 литров + 1 литр для мальчика Васи — это уже 11 литров. А ведро у вас всего лишь на 10 литров воды. Вы пытаетесь вместить одиннадцатый литр в 10-литровое ведро, но вода льётся через край. В итоге вы приносите всего лишь 10 литров на 11 человек, и каждому мальчику достаётся менее 1 литра.
Вот то же самое происходит и с сервером.
Разработчики Minecraft рекомендуют для каждого игрока выделять 100 мегабайт оперативной памяти с учётом того, что сервер не будет перегружен плагинами.
Если память вашего сервера — 10 000 мегабайт, а памяти на одного игрока требуется 100 мегабайт, то делим 10 000 / 100 = 100. Получается сто. Значит, при таком объёме оперативной памяти комфортно будут играть на сервере 100 человек, если оперативную память не съедают ваши плагины и игровой процесс.
Ведром в этом случае будет являться сам сервер с выделенной для него памятью 10 000 (как на картинке, это пример). Водой — карта сервера и плагины, а гостями — игроки, заходящие на сервер, для которых потребуется память минимум 100 мегабайт.
Итог таков: показатель «Выделено памяти» отображает размер памяти, который задействован сервером в данный момент и требуется для его работы. Это размер памяти, которую потребляют в данный момент плагины, карта и игроки.
Конечно, можно сделать параметры запуска такими, что карта сразу будет прогружаться до предела выделенной для сервера памяти. Показатели «Максимум памяти» и «Выделено памяти» при этом будут равными. Это принесёт печальный результат и постоянные краши, так как вся память будет бессмысленно израсходована на карту, которая никем не используется.
Сервер Minecraft устроен так, что регионы и чанки начинают прогружаться только тогда, когда игрок попадает на них. Например, зашёл игрок на сервер, телепортировался в определённое место — и вокруг этого игрока в этом месте всё прогрузилось. Начали бегать мобы, заработали механизмы, погода в этом месте начала для игрока меняться — то есть всё ожило. На всё это требуется около 100 мегабайт памяти. Остальные участки карты в тех местах, где нет игроков, отключены, и оперативная память на них не тратится.
А теперь представим, что параметры запуска сервера мы настроили так, что наш сервер прогружает карту на все 10 000 мегабайт. Получится так, что карта, которая не используется игроками, будет расходовать оперативную память. И в случае, если игрок попадёт за пределы координат прогруженной карты, для него не найдётся свободной оперативной памяти для дальнейшей прогрузки. Начнутся лаги, либо сервер крашнется с ошибкой Out of Memory. Ведро-то уже полное. 🙂
Автор: Иван Дратьев
  • NoName
    5 июля 2017 - 16:06
Без этих плагинов попробуйте запустить:

  • MersaK
    13 июля 2017 - 03:34
Ничего не помогало снизить загруженность ОЗУ с 4000Мб.
Удалил тыщу старых аккаунтов в AuthMe и прочих папках плагинов и миров.
Вчера сервер перезапустился, стало занято 2900Мб. Ну, думаю, отпустило…
Сегодня
 [03:09:18] [Инфо]: Время непрерывной работы: 3 часов 9 минут 6 секунд
 [03:09:18] [Инфо]: Количество тактов в секунду = 20
 [03:09:18] [Инфо]: Размер оперативной памяти для вашего сервера: 4,000 MB.
 [03:09:18] [Инфо]: Размер оперативной памяти требуемый сервером: 3,991 MB.
 [03:09:18] [Инфо]: Размер оперативной памяти которая освободилась: 3,496 MB.
 [03:09:18] [Инфо]: World "world": 256 чанков, 3 объектов, 560 тайлов.
Понимаете, НИЧЕГО не трогал в конфигурации между этими АВТОМАТИЧЕСКИМИ рестартами (новый функционал управления сервером).
Что такого могло произойти в мирах игры, чтобы отожрать дополнительный Гигабайт ОЗУ?
  • NoName
    14 июля 2017 - 00:38
Может кто-нибудь лаг машину построил на сервере? Из красной пыли, факелов красных и переключателей строят какие то машины.
  • MersaK
    17 июля 2017 - 10:30
Спасибо админы!
Не знаю как, но после самопроизвольных рестартов и падений и снова рестартов (раз 6 это было), сервер про…чихался.
Он осознал, наконец-то, что у него давно нет плагина asw, нет файла с командой запуска сервера и что пора уже быть, как все. 😀
Оперативная память 1466Мб/4000Мб
/gc
Размер оперативной памяти требуемый сервером: 953 MB.
Размер оперативной памяти которая освободилась: 377 MB.
Я всё-таки подозреваю некий зависший процесс, связанный с плагином asw и другими, работающими параллельным потоком, событийно.
А машины на редстоуне засветились бы в нагрузке на процессор.
  • NoName
    17 июля 2017 - 11:19
MersaK MersaK сказал(а):
Я всё-таки подозреваю некий зависший процесс, связанный с плагином asw и другими, работающими параллельным потоком, событийно.

Ну да, или же команда //set в каком - нибудь далёком регионе наконец-то выполнилась.