@andresssss

Каковы особенности проведения нагрузочного тестирования сервера?

Добрый день!

Расскажите пожалуйста, каковы особенности проведения нагрузочного тестирования сервера?

Если возможно, то буду рад и ссылке на учебно-справочные материалы.

Меня интересуют следующие вещи.
Я знаю следующие инструменты стресс-тестирования сервера Jmeter, ApacheBench, Siege, Tsung, strongloop.com, phanos, loader.io.

Сервер rest через http, имеет функции авторизации и загрузки изображений. Собран на node-express, имеются ряд маршрутов к разным таблицам с некоторым количеством данных в базе данных.

Как проводить стресс-тест ?
Как находить проблемные места в работе сервера?

Я имею ввиду, в интернете есть информация, но я не могу понять пределы того, что нужно делать.
Например, можно сгенерировать с помощью инструментов 100 000 запросов в секунду от 10 000 пользователей (с высоким пингом, имитирующим более медленный интернет).
При этом направить все эти запросы, скажем, на конкретную или случайную строку в базе данных, но на один маршрут.
Затем сделать запросы для тестирования на других маршрутах.
Это как я сейчас представляют стресс-тестирование.

Но как имитировать авторизацию от пользователей (скажем одновременно зашли 10 000 пользователей)?

Можно ли мне в целях обучения это сделать на своем устройстве? Не угробит ли это тестирование ноутбук? (все же оперативная память и процессор не резиновые)

Еще один момент касается проблемных мест. Какими могут быть проблемные места сервера?
Подключение (предоставленная провайдером скорость подключения, скажем 10Мбит/сек)? характеристики процессора? оперативной памяти? дисковых систем?
Какие проблемные места касаются именно софта ? Количество записей? Количество таблиц? Оптимально с точки зрения производительности кода ?
И все это в совокупности?

И, этот вопрос не относится к теме, но все же очень мне интересен, имеется ли практика подключения к серверу через разные порты ?

Я предполагаю сейчас, что все подключения происходят через один порт 443 (или 80), а остальные используются для других нужд. Но прочитал информацию в статье про стресс-тестирование, что люди распределяют трафик входящий на сервер на разные порты (стало быть активных прослушиваемых backend'ом портов больше). Но у меня это как то в голове не укладывается.

Или все же, грамотно настроенный сервер, распределяет трафик на несколько портов и слушает несколько портов для одних и тех же задач ?

Заранее спасибо!
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
@vitaly_il1
DevOps Consulting
Начинаем с того, что определяем, что мы хотим симулировать в нашем тестировании.
Например, Toster.ru - изучаем логи и аналитику сервера, видим Х пользователей одновременно в среднем, в пике Х*10. Пользователь читает А вопросов, отвечает на В.
Мы хотим проверить, что будет если кол-во пользователей увеличится в 5 раз.
Значит мы должно просимулировать примерно такой паттерн поведения пользователя как видим в логах, но в кол-ве в 5 раз больше.
Нагружаем, анализируем скорость ответа, кол-во ощибок и т.п.
Если все работает как и раньше - отлично.
Если медленно и с ошибками - смотрим по мониторингу серверов, что перегружено. Масштабируем узкие места (горизонтально и/или вертикально),
Повторяем тест.
И так по кругу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы