Перейти к содержанию

Хостинг

Выделенный сервер под Lineage 2

Домашний компьютер годится ровно до того дня, когда на сервер зайдёт десяток незнакомых людей. Дальше начинается хостинг, и выбирают его не по цене за гигабайт памяти.

VPS или физическая машина

Разница для игрового сервера не в мощности, а в том, делите вы её с кем-то или нет.

  • VPS. Дешевле, поднимается за минуты, ресурсы делятся с соседями. Для теста и для сервера на два десятка человек — нормально. Главная засада не в процессоре, а в диске: на переподписанном узле база начинает отвечать медленно в самый неподходящий момент, и выглядит это как лаги сервера.
  • Физическая машина. Дороже и дольше оформляется, но ресурсы ваши целиком. Имеет смысл с того момента, когда онлайн стабильно держится, а не когда хочется.

Порядок действий, который экономит деньги: поднять всё локально, довести до работающего состояния, замерить расход памяти на пустом мире — и только потом подбирать тариф под измеренное. Запуск на Ubuntu.

На что смотреть в характеристиках

  • Частота ядра, а не их количество. Значительная часть игровой логики обрабатывается последовательно, и два быстрых ядра здесь полезнее восьми медленных.
  • Память. Мир и геодата занимают её ещё до прихода первого игрока, так что минимальную планку задаёт не онлайн, а хроника и сборка. Про геодату отдельно.
  • Диск — только SSD. Сервер пишет в базу постоянно: инвентарь, персонажи, клановые данные.
  • Канал и задержка. Трафик у Lineage 2 мелкий и частый, к потерям пакетов чувствительный. Площадка в той же стране, что и основная аудитория, даёт больше, чем лишние гигабайты памяти.
  • Защита от DDoS. Не опция, а параметр выбора — см. ниже.

Про DDoS без драматизации

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

Что из этого следует практически:

  • Фильтрация нужна на уровне площадки. Файрвол на самой машине останавливает мусор уже после того, как он занял канал, — то есть не останавливает.
  • Игровые порты закрываются не фильтром, а характером трафика: это постоянные соединения, а не запросы. Площадка должна уметь защищать именно их, а не только веб.
  • Адрес сервера, на который ходят игроки, и адрес сайта лучше разводить. Иначе по сайту находят машину и бьют по ней.
  • Бэкап базы в другом месте, а не на той же машине. Под нагрузкой разбираться некогда.

Что настроить до первого игрока

  1. Вход только по ключу, пароли выключить. Публичный адрес перебирают автоматически, и начинается это в первые же часы.
  2. Отдельный пользователь под игровой сервер. Не root: процесс смотрит в интернет.
  3. Файрвол с закрытым всем, кроме нужного. Порты 2106 и 7777, порт для вашего входа, веб — если сайт на той же машине. База наружу не смотрит никогда.
  4. Автозапуск и перезапуск после падения. Через systemd, а не screen. Почему именно так.
  5. Бэкап базы по расписанию и на другую машину. И проверенное восстановление — бэкап, который ни разу не разворачивали, бэкапом не является.
  6. Мониторинг памяти и диска. Игровой сервер умирает от нехватки памяти тихо, без предупреждения в чате.
  7. Синхронизация времени. От неё зависит всё, что идёт по расписанию: осады, респаун боссов, события.

Два сервера на одной машине

Иногда хочется держать рядом боевой и тестовый сервер. Технически это делается без проблем — два набора процессов, два набора схем в базе, разные порты. Два условия, о которых забывают:

  • Память делится между ними по-настоящему. Тестовый сервер с полной геодатой отъедает столько же, сколько боевой, даже если на нём никого нет.
  • Схемы в базе должны быть разными и у пользователей должны быть права только на свои. Иначе однажды скрипт установки тестового сервера снесёт таблицы боевого, и это не гипотетический сценарий.

Дальше по разделу