«ГеймСтудия» — разработчик мобильных MMO-игр с аудиторией в 100 миллионов зарегистрированных игроков. MongoDB 7.0 на одном мощном сервере (96 vCPU, 512 GB RAM, NVMe RAID) — 2.8 TB данных, 120 коллекций. Основная коллекция — player_profiles с 100M документов, средний размер документа 4 KB.
Проблемы, с которыми студия пришла к нам в itfresh.ru:
- Latency росла — p99 чтения профиля увеличилась с 5 мс до 45 мс за последние 6 месяцев. Working set перестал помещаться в RAM.
- Запись упиралась в I/O — 80 000 writes/sec при пиковой активности (вечерний прайм-тайм). WiredTiger cache eviction не успевал.
- Географическая задержка — игроки из России, Европы и Юго-Восточной Азии. Все читают из одного сервера в Москве. Для SEA — 200 мс RTT.
- Бэкапы — mongodump на 2.8 TB занимал 6 часов и деградировал производительность.
Решение очевидно — sharding. Но настроить его правильно для gaming workload — отдельная инженерная задача.
Оставить комментарий