Диагностика Minecraft Server Lag и Low TPS

Как работает Minecraft (что вызывает отставание?)

Ключ к пониманию того, что вызывает задержку, состоит в том, чтобы понять, как работает Minecraft. Серверное программное обеспечение Minecraft работает аналогичным образом с одной ключевой проблемой: нет многопоточности или временных ограничений для основного игрового цикла. Когда сервер переходит на тик, он проходит через все обновления TileEntity, обновления сущностей, обновления блоков, события и другие процессы, пока это не будет сделано. Все это происходит в одном потоке, и следующий цикл не может начаться, пока не закончится текущий. Мир не будет обновляться, игроки не будут двигаться, а объекты будут заморожены. В идеале каждый тик должен занимать не более 50 мс, чтобы поддерживать 20 тиков в секунду (TPS). Это может быть всего 55,55 мс для 18 TPS с минимальными проблемами. Любое ниже этого, и вы начнете видеть отставание.

Типичные причины отставания

Есть много вещей, которые могут вызвать задержку, но некоторые из них будут наиболее вероятным виновником для большинства серверов.

  • Использование файлов : любой плагин, который постоянно читает файлы плеера, особенно при таких событиях, как движение, повреждение или взаимодействие. Примерами могут служить некоторые флаги PVP или плагины Glow, которые будут непрерывно читать файлы плеера.
  • Плоские файлы как база данных : если у вас есть плагины, которые используют большие файлы для отслеживания большого количества данных, повторяющихся в этом файле или в памяти, в зависимости от того, как они хранятся, это займет много времени. Многие плагины делают это и не принимают мер предосторожности против того, как, когда базы данных становятся раздутыми, время обработки повлияет на тик серверов. Это будет заметно при загрузке больших конфигураций MagicSpells или при использовании систем разрешений, использующих YAML вместо соответствующей базы данных, такой как PEX и GroupManager.
  • Слишком много операций : когда плагин порождает слишком много сущностей или пытается выполнить сложные задачи, такие как движение, вы начнете видеть отставание. Даже если каждый запуск занимает менее 1 мс, при обработке события 20 000 раз в секунду оно становится экспоненциальным. Плагины, которые могут вызвать это, - плагины редактирования мира, такие как VoxelSniper и WorldEdit; или защитные плагины, такие как Anti Cheats и World Protections.
  • Слишком много кусков загружено : один кусок 16*16*256. Это может звучать не так уж и много, но при умножении это означает, что в каждом блоке содержится 65 536 блоков. Каждый игрок может иметь более 200 кусков, загруженных вокруг них, в зависимости от вашей конфигурации. Это вверх от 13 107 200 блоков. Это занимает много памяти. Кроме того, если хотя бы 1% из них являются TileEntities, это 131 072 загруженных TileEntities, которые необходимо обновлять каждый тик. Моды печально известны тем, что на TileEntities медленное время обработки.
  • Cascading WorldGen : это когда плагин или мод генерирует структуры вне чанка, который ему дан. Это приводит к тому, что следующий блок загружается, генерируется и затем запускается снова, если у него также начинают переполняться структуры в следующий блок. Это плохой дизайн от имени создателей, и любой плагин или мод, делающие это, должны быть немедленно удалены.
  • Сущности плитки : см. Раздел LagGoggles ниже.

Поиск причины задержки, как правило, в настоящее время является простой процедурой, поскольку большинство серверных программ Minecraft построены с использованием инструментов профилирования.

Отчеты о времени для Spigot / PaperSpigot

Чтобы получить подробный отчет по времени, вы можете использовать следующую команду.

/timings on

Вам захочется подождать несколько минут и позволить этому запаздывать, пока идет время. Через некоторое время создайте отчет.

/timings paste

Это даст вам ссылку на веб-сайт с хорошей разбивкой отчета с простыми опциями для просмотра всех данных, которые вы получаете. Вы можете узнать больше о том, как их читать, на временной вики Spigot .

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

/timings off

Отчеты о времени для губки

Чтобы получить подробный отчет по времени, вы можете использовать следующую команду.

/sponge timings on

Вам захочется ��одождать несколько минут и позволить этому запаздывать, пока идет время. Через некоторое время создайте отчет.

/sponge timings report

Это даст вам ссылку на веб-сайт с хорошей разбивкой отчета с простыми опциями для просмотра всех данных, которые вы получаете. Поскольку система синхронизации Sponge основана на Spigot, вы можете узнать больше о том, как их читать, на вики-сайте Spigot .

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

/sponge timings off

Вы также можете сбросить время.

/sponge timings reset

Шаги, чтобы уменьшить отставание

  • Используйте правильные аргументы для вашего файла сценария для запуска Minecraft. Узнайте больше о соответствующих аргументах Java здесь
  • Используйте LuckPerms или менеджер разрешений, который использует правильную базу данных вместо простого файла
  • Избегайте кусковых загрузчиков в целом
  • Удалить все, что вызывает каскадное поколение мира
  • Ограничьте плагины Anti Cheat, чтобы они не переусердствовали
  • Ограничить расстояние просмотра игроков в server.properties
  • Убрать враждебных мобов через определенный промежуток времени
  • Ежедневно перезагружайте сервер для устранения утечек из Java
  • НИКОГДА не перезагружайте сервер, это вызывает утечки и другие проблемы
  • Используйте версии плагинов FastAsync, такие как WorldEdit и VoxelSniper.
  • Ограничьте размер вашего мира, чтобы новые куски не создавались постоянно
  • Ограничьте количество плагинов, которые вы используете. Не все плагины построены хорошо, и чем больше у вас есть проблем, с которыми вы столкнетесь

LagGoggles

Большая часть отставания от модернизированных серверов исходит от сущностей листов. Это объекты, созданные для блоков, которые используются для обработки функциональности и событий блока. Если они занимают слишком много времени или их слишком много, это может увеличить время на тик, что приведет к снижению общей TPS сервера. Способ визуализировать эти проблемы - использовать мод под названием LagGoggles. Вы можете скачать этот мод от CurseForce .



Leave a Comment

Создание сервера Teamspeak 3 в Ubuntu 14 64-bit

Создание сервера Teamspeak 3 в Ubuntu 14 64-bit

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

Как настроить сервер Left 4 Dead 2 в Ubuntu

Как настроить сервер Left 4 Dead 2 в Ubuntu

В этом руководстве вы узнаете, как настроить сервер Left 4 Dead 2 в Ubuntu. Это руководство было протестировано на сервере Ubuntu 15.10. Необходимые условия обновления th

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.

Как установить Unturned 2.2.5 на CentOS 6

Как установить Unturned 2.2.5 на CentOS 6

В этом руководстве вы узнаете, как настроить сервер Unturned 2.2.5 на Vultr VPS с CentOS 6. Примечание. Это отредактированная версия Unturned, которая не

Как установить сервер FiveM в Ubuntu 19.04

Как установить сервер FiveM в Ubuntu 19.04

Предварительные условия Система Linux под управлением Ubuntu 19.04 с как минимум 1 ядром ЦП и 2 ГБ памяти. Пользователь без полномочий root в системе Прежде чем мы начнем Чтобы убедиться, что вы

Настройка Counter Strike: Source в Debian

Настройка Counter Strike: Source в Debian

В этом руководстве мы будем настраивать игровой сервер Counter Strike: Source на Debian 7. Эти команды были протестированы на Debian 7, но они также должны работать.

Как настроить сервер Tekkit Classic в Ubuntu 16.10

Как настроить сервер Tekkit Classic в Ubuntu 16.10

Используете другую систему? Что такое Tekkit Classic? Tekkit Classic - это модпак для игры, которую все знают и любят; Майнкрафт. Он содержит некоторые вер

Настройка Multi Theft Auto Server в Debian

Настройка Multi Theft Auto Server в Debian

Это руководство объясняет, как установить сервер Multi Theft Auto в Debian. Последнее обновление для Debian 7 и MTA 1.5.4. Любой VPS от Вультр это грей

Как установить мультиплеер SA-MP San Andreas на CentOS 7

Как установить мультиплеер SA-MP San Andreas на CentOS 7

Из этого руководства вы узнаете, как настроить сервер SA-MP (San Andreas Multiplayer) в CentOS 7. Предварительные условия Позволяет убедиться, что система полностью обновлена.

Как установить сервер Teamspeak 3 на 64-битную версию Ubuntu 16.04

Как установить сервер Teamspeak 3 на 64-битную версию Ubuntu 16.04

Используете другую систему? Обзор Надоело пользоваться Discord / Skype? Устали от отсутствия полного контроля над вашим сервером? Или, может быть, из-за отсутствия O

Как установить Garrys Mod на Windows Server

Как установить Garrys Mod на Windows Server

Введение В этой статье объясняется, как загрузить и установить сервер Garrys Mod на Windows Server 2012. Это руководство сделано для того, чтобы быть в курсе.

Как установить ARK Survival Evolved (ArkSE) на CentOS 7

Как установить ARK Survival Evolved (ArkSE) на CentOS 7

Из этого руководства вы узнаете, как настроить сервер ARK Survival в CentOS 7. Предварительные условия Для работы ARK требуется большой объем памяти. Я рекомендую использовать V

Как установить Counter-Strike: Global Offensive Сервер в Windows

Как установить Counter-Strike: Global Offensive Сервер в Windows

Введение В этом руководстве вы узнаете, как установить сервер Counter-Strike: Global Offensive в Windows. Предварительные условия Прежде чем мы начнем, вы

Как установить Cuberite на сервере CentOS 6 или 7

Как установить Cuberite на сервере CentOS 6 или 7

Введение Что такое куберит? Cuberite - это масштабируемая реализация сервера Minecraft с открытым исходным кодом, написанная на C ++. Имеет простой в использовании плагин

Настройка сервера Counter-Strike: Global Offensive (CSGO) в Arch Linux

Настройка сервера Counter-Strike: Global Offensive (CSGO) в Arch Linux

Из этого туториала Вы узнаете, как настроить сервер Counter-Strike: Global Offensive в Arch Linux. В этом руководстве предполагается, что вы вошли со стандартным использованием

Как установить Left 4 Dead Server на CentOS 7

Как установить Left 4 Dead Server на CentOS 7

В этом руководстве я объясню, как установить и настроить сервер L4D в CentOS 7. Установка Left 4 Dead Прежде чем мы начнем, мы должны убедиться, что

Установка сервера Reflex в Windows

Установка сервера Reflex в Windows

Введение Reflex - это перспективная конкурентная арена FPS от Turbo Pixel Studios. Из этого туториала Вы узнаете, как настроить собственный сервер Reflex на

Terraria Server с TShock в Linux

Terraria Server с TShock в Linux

Terraria - MMORPG, основанная на майнинге, строительстве и сражениях. Некоторые люди говорят, что это 2D-версия Minecraft, но это не будет справедливо для Террарии

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше