World of tanks: высокие нагрузки

1,186 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,186
On SlideShare
0
From Embeds
0
Number of Embeds
104
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

World of tanks: высокие нагрузки

  1. 1. WORLD OF TANKS: ВЫСОКИЕ НАГРУЗКИ МАКСИМ МЕЛЬНИКОВ
  2. 2. КТО Я Wargaming.net Order of War Order of War: Challenge World of Tanks developer Linux Mobile hobbyist Openmoko systemd telepathy Gentoo World of Tanks: высокие нагрузки, Максим Мельников
  3. 3. WORLD OF TANKS СЕГОДНЯ 800k одновременно играющих в пике 8M сообщений в секунду 300 серверов для обслуживания игры 60M посещений игрового портала в месяц 5PB (петабайт) на установку и обновления игрового клиента в месяц World of Tanks: высокие нагрузки, Максим Мельников
  4. 4. СОДЕРЖАНИЕ Вступление Фрагменты архитектуры Игровой cервер Сетевой трафик Метакластер Веб Обновление клиента Заключение World of Tanks: высокие нагрузки, Максим Мельников
  5. 5. АРХИТЕКТУРА WORLD OF TANKS клиент игры — тонкий клиент, плеер сервер — расчёт игрового мира кластер — сотни процессов работающих как единое целое (сервер) игровой мир — пошаговый, шаги очень маленькие World of Tanks: высокие нагрузки, Максим Мельников
  6. 6. АРХИТЕКТУРА КЛАСТЕРА Storage* Nodes Managers MySQL BaseApp BaseAppMgr MySQL* CellApp CellAppMgr RabbitMQ LoginApp DbMgr World of Tanks: высокие нагрузки, Максим Мельников
  7. 7. АРХИТЕКТУРА КЛАСТЕРА II BaseApp CellApp Account Arena ChatChannel Avatar Clan Vehicle Admin TeamBase SysMessenger AreaDestructibles Node Node World of Tanks: высокие нагрузки, Максим Мельников
  8. 8. РАЗРАБОТКА СЕРВЕРА 1. обычный Python 2. GC выключен 3. немного C++ 4. RPC - на базе сообщений 5. UDP-based протокол с гарантией доставки World of Tanks: высокие нагрузки, Максим Мельников
  9. 9. ОТКАЗОУСТОЙЧИВОСТЬ объекты только в памяти репликация объектов на случай отказа World of Tanks: высокие нагрузки, Максим Мельников
  10. 10. СЕТЕВОЙ ТРАФИК 1. 8M уникальных UDP пакетов в секунду 2. 16 Gbps на 800k пользователей World of Tanks: высокие нагрузки, Максим Мельников
  11. 11. НЕРАВНОМЕРНЫЙ ТРАФИК 800k пакетов в 1ms 10k пакетов в следующие 99ms World of Tanks: высокие нагрузки, Максим Мельников
  12. 12. ПРОБЛЕМЫ РОСТА совсем не угадали размер аудитории на старте постоянный рост аудитории недоработки и нехватка оборудования постоянный аврал предел масштабирования кластера World of Tanks: высокие нагрузки, Максим Мельников
  13. 13. ПЕРЕЕЗДЕЦ много кластеров быстрое перемещение между кластерами выделенный кластер для хранения данных World of Tanks: высокие нагрузки, Максим Мельников
  14. 14. АРХИТЕКТУРА МЕТАКЛАСТЕРА Центр Периферия RU1, RU2, ... постоянное хранилище временное хранилище аккаунты (proxy) аккаунты взаимодействие с web-ом бои World of Tanks: высокие нагрузки, Максим Мельников
  15. 15. ПРEИМУЩЕСТВА МЕТАКЛАСТЕРА 1. масштабируемость 2. гео-распределённость 3. отказоустойчивость 4. независимость World of Tanks: высокие нагрузки, Максим Мельников
  16. 16. ВЕБ регистрация раздача обновлений новости управление пользователями статьи и описания профиль игрока медиа контент статистика платёжная форма рейтинги обработка платежей ... World of Tanks: высокие нагрузки, Максим Мельников
  17. 17. ИНТЕГРАЦИЯ С ИГРОВЫМ СЕРВЕРОМ AMQP — протокол взаимодействия с игровым сервером XML-RPC обёртка над AMQP реплика данных игры в реляционном виде World of Tanks: высокие нагрузки, Максим Мельников
  18. 18. СЕРВИСНАЯ АРХИТЕКТУРА множество различных проектов протоколы взаимодействия: AMQP, HTTP, SQL, XML-RPC World of Tanks: высокие нагрузки, Максим Мельников
  19. 19. СТЭК ТЕХНОЛОГИЙ LNAMPMR Другое Linux uwsgi nginx Twisted Apache (mod_wsgi) Php MySQL Ruby Python (Django) PostgreSQL memcached MongoDB RabbitMQ Redis World of Tanks: высокие нагрузки, Максим Мельников
  20. 20. ОБНОВЛЕНИЕ КЛИЕНТА отдельный процесс который занимается обновлениями поддержка http и torrent протоколов 2M игроков размер обновления 1GB нет возможности раздавать обновление заранее короткая сессия участия игроков в раздаче World of Tanks: высокие нагрузки, Максим Мельников
  21. 21. CБОР СТАТИСТИКИ 1. Launcher файл размер время протокол источник 2. tracker 3. CDN World of Tanks: высокие нагрузки, Максим Мельников
  22. 22. РЕШЕНИЕ наши torrent сервера — всегда в top-е web seed-ы World of Tanks: высокие нагрузки, Максим Мельников
  23. 23. ИДЕИ главное — скорость и простота разработки не стоит боятся гетерогенной среды синхронный подход везде где можно асинхронный — только там, где это необходимо AMQP — отличный протокол для реализации RPC работа с объектами в памяти самая быстрая World of Tanks: высокие нагрузки, Максим Мельников
  24. 24. СПАСИБО ЗА ВНИМАНИЕ. ВОПРОСЫ Максим Мельников mailto:m_melnikau@wargaming.net https://plus.google.com/114669104565190507739/ https://twitter.com/max_posedon http://wargaming.com

×