Использование системных ресурсов железа (CPU и RAM)





Тест от от 12.2023 при 100 FPS игрового сервера

Каждые 10мс запускается цикл обработки команд игроков и обновление npc.  
Используется трех процессорная архитектура: WebSocket сервер + Игровой Сервер + Сервер выполнения игровых механик), включено логирование всех действий (доп. время на запись логов). 2 ядра CPU

CPU (Процессор) 

  • WebSocket сервер (можно наблюдать онлайн в админ панели в разделе Сервера) -
    •  0.7% на запуск (нет активных действий на локации и игроков)
    •  3.5% 50 npc из Игрового сервера присылают пакеты смены координат (двигаются) и дополняют рассылаются 1 игроку
  • Игровой сервер (нагрузка создается от периодического сохранения в базу данных, зависит от частоты сохранений и размеров данных, можно посмотреть в разделе Игры
    • 3.2% на запуск
    • 4.5%  с просушиванием порта Сервера механик , прием пакетов изменений 50 npc и отправка в WebSocket для рассылки игрокам
    • 5% тоже при поступлении 1 пакета 250 байт (изменения на команду движения) и сохранение в базу данных во время ожидания данных от Сервера игровых механик
  • Сервер игровых механик (можно наблюдать в разделе Фреймворки, выбрав конкретный , после выбрав игру и процесс)
    • 3% на запуск
    • 25% 50 npc с распределенной на запуск в разных кадрах механики случайного движения и отправка пакета 250 байт назад в Игровой сервер каждый кадр
RAM (оперативная память) - 0.5 Мбайт на запуск 1 карты + размер пакетов объектов на карте (npc, игрок, объект) x2 (хранятся в Сервере механик и WebSocket копии - последний рассылает игрокам при входе, не запрашивая у Сервера механик)

Тест от от 11.2022 

 2 ядра CPU

CPU от 2 Ядер (чем больше тем быстрее смогут работать параллельно работающие программные сервера и производиться расчеты системой ):

  • Нагрузка в покое CPU ~ 0,07% (load average 1, 5 и 15 минут): 0.07, 0.02, 0.01 на процесс
  • Нагрузка 100 ходящий ботов (эмуляция игроков) CPU 4.7% 0.1, 0.09, 0.02

RAM  от 4ГБ, нужна в целом для работы служб “железа” , сам программный сервер потребляет доп мощности по следующей формуле:

  • 1 Мб на запуска 1 экземпляра программного сервера ( 1 карта = 1 сервер )
  • ~ 1 Мб данных на загрузку информации о где на карте ходить можно, где препятствия
  • + ~ 0.005 Мб на каждого монстра, объект, игрока (в зависимости насколько много данных из базы будет браться)
GPU (видеокарта) - в настоящее время сервер не поддерживает расчет на видео карте (речь идет про видео карту именно сервера, не игроков), однако прибавка в скорости гарантирована (за счет того что в видео карте в сотни раз больше процессоров)






Что нового?


Статьи про разработку продукта

PHP, Разработка игр, Unity, Unreal Engine, Облачные сервисы, php, unity, mmo, mmorpg, сервер для игры

С 2021 года я начал делать свою MMO игру обнаружив что нет готовых сервисов ни в России, ни за рубежом. Но сделать игру я мечтал со времен «Бойцовского клуба» и текстового «Амулета дракона», вдобавок уже был неплохим программистом.

Так и родилась идея написать свое решение Авторитарного сервера для 2D Mmo RPG игр и, как говорил Илон Маск, «Батут работает».

Читать далее
ч.15 Игровой авторитарный сервер на процессах и его архитектура в картинках — Создание сервера для онлайн ММО игр на PHP
PHP, Программирование, Разработка игр, Unity, Unreal Engine, php, игровой сервер, разработка сервисов, онлайн-игры, разработка онлайн-игр
Создание сервера для онлайн ММО игр на PHP ч.14 — Сетевая карта и задержка кадра (Latency frame) по RFC 2544 (1242)
PHP, Проектирование и рефакторинг, Разработка игр, Сетевые технологии, Параллельное программирование, php, go, c#, онлан игры
Создание сервера для онлайн ММО игр на PHP ч.13 — Event-driven паттерн, JSON-RPC и почему не сервисная (SOA) архитектура
PHP, Программирование, Проектирование и рефакторинг, Разработка игр, Алгоритмы, php, event-driven, разработка игр, mmo, mmorpg, шаблон проектирования

Кабинет

Игры