Нагрузочное тестирование Мессенджера

Зачем

  • Не знаем capacity
  • Поиск узких мест

Что нагружали

  • Service-messenger2
  • Service-messenger-arbiter
  • RabbitMQ
  • MongoDB
  • Sockstream
  • Counters Redis cache

Не нагружали сторонние интеграции

Подготовка

  • Пул юзеров для нагрузочного тестирования

  • Фильтрация в арбитре

  • Фильтрация stream.send

  • Фильтрация sockstream

  • Профиль глубины чатов

  • Messenger2 access logs

  • Cоздание начальных данных

  • Построение профиля нагрузки

  • Подача нагрузки

  • Дашборд

  • Интерпретация результатов

  • Очистка данных из бд

Первый подход

10k тестовых юзеров, нагрузка до 15k rps

Antispam efficiency

MongoDB operation time

MongoDB disk utilization

Mongo db memory cached

Текущие выводы

  • x1.87 нагрузки
  • узкое место в инфраструктуре RabbitMQ
  • узкое место в MongoDB
  • нужно улучшать профиль нагрузки
  • есть описанная процедура НТ -  будем повторять
Made with Slides.com