top of page

Маленький VPS как флот игровых серверов

Фото автора: Marcel Dütscher
Marcel Dütscher
5 июл.
1 мин. чтения

Все наши онлайн-миры — портал, официальные миры, миры, созданные игроками — работают на одном арендованном Linux-сервере (VPS). Никакого дата-центра, никаких пятизначных счетов за облако. В этой статье я покажу, как устроен сервер и чему мы по пути научились.


Сначала защита. Прежде чем игре разрешили выйти на сервер, на первом месте была базовая безопасность: файрвол (ufw), который открывает только нужные порты, fail2ban против автоматических попыток входа и SSH только по ключам. Caddy работает как обратный прокси в варианте для Docker — он сам получает TLS-сертификаты и направляет запросы в нужные контейнеры.


У каждого мира свой контейнер. Сама игра запускается как образ Docker, и каждый мир получает собственный контейнер с жёсткими лимитами: 768 МБ ОЗУ и 2 ядра процессора на мир, не более десяти активных миров одновременно. Так один-единственный мир никогда не положит весь сервер.


Мониторинг, который звонит нам. Netdata следит за сервером с помощью более чем 140 сигналов — от «диск заполняется» до «портал не отвечает». Если что-то срабатывает, на телефон приходит пуш-уведомление (через ntfy). Так мы узнаём о проблемах раньше игроков.


Самая неожиданная находка: когда мы измерили нагрузку в простое, примерно половина занятой памяти ушла вообще не на игру, а на Docker и сам мониторинг. Инфраструктура, которая несёт игру, в покое тяжелее самой игры. Хорошее напоминание, что нужно измерять, а не гадать.


Вердикт после нескольких месяцев работы: небольшой, как следует защищённый сервер прекрасно тянет инди-мультиплеер — если ставить лимиты и присматривать за ним.

Недавние посты

Смотреть все

Комментарии


Комментарии к этому посту больше не доступны. Обратитесь к владельцу сайта за дополнительной информацией.
bottom of page