Что такое инструмент для стресс-теста?
Инструменты стресс-тестирования являются важной частью процесса оптимизации системы, поскольку они позволяют разработчикам и инженерам выявить потенциальные проблемы в своих системах до их развертывания. Следует отметить, что они не имеют прямого отношения к пользовательскому опыту — единственной целью является обеспечение бесперебойной и отказоустойчивой работы для всех вовлеченных сторон, включая клиентов/пользователей! Вот несколько причин, по которым такие инструменты полезны:
- Инструменты стресс-тестирования дают представление о том, как программное обеспечение будет реагировать в условиях высокой нагрузки — это очень важная информация, особенно если вы запускаете или переделываете онлайн-сервис с высокой посещаемостью, в котором нет места заминкам в работе (например, жалобам в службу поддержки). Тщательное изучение времени отклика вашей системы помогает выявить слабые места, которые необходимо устранить, и позволяет оптимизировать распределение/использование ресурсов на стороне сервера, не создавая узких мест;
- Тестирование программного обеспечения под высокой нагрузкой необходимо, поскольку оно позволяет выявить потенциальные ошибки/недостатки. Чем больше стресс-тестирований проводится, тем больше вероятность того, что в системе будут обнаружены проблемы (которые могут быть пропущены при использовании обычных методов). Например: запуск двух или трех экземпляров популярных браузерных игр в быстрой последовательности на идентичном оборудовании может выявить несовместимость между различными версиями; а попытка одновременной загрузки/передачи большого файла через несколько устройств может выявить, достаточно ли пропускной способности для одновременной поддержки всех пользователей;
- Инструменты стресс-тестирования предоставляют ценную статистику/метрические данные — они могут использоваться как администраторами, так и разработчиками во время проверки технического обслуживания системы (или при устранении неполадок).
В этой инструкции мы рассмотрим один из примеров такого инструмента для тестирования процессора!
Практическое использование
Обычно для того, чтобы оценить, как наша система будет работать в производстве, нам нужно составить план. Разделите нашу систему на несколько частей: программное обеспечение, аппаратное обеспечение и сеть. Все они должны быть подвергнуты бенчмаркингу со средним значением производительности. В этой части инструкции мы рассмотрим оценку процессора сервера на Linux-машине. Которые занимают большую часть продуктовых серверов в мире. Также на системный процесс влияют скорость дисков, оперативная память и т.д.
Первым делом при любых манипуляциях обновляется пакет в системе одной командой, приведенной ниже:
Мы будем использовать sysbench для интенсивного и экспресс-тестирования нашего сервера без установки сложного программного обеспечения, что может быть полезно для ситуации, когда нам нужно оценить сервер в определенные сроки. И ответьте, как это будет работать? Процесс установки не является сложным:
Дождитесь окончания процесса, и теперь мы можем использовать утилиту для тестирования. Остановите все бесполезные службы или демоны, которые вы не будете использовать в системе. Синтаксис команды sysbench [options] [testname], этот инструмент так же может проверять оперативную память, систему ввода-вывода и т. д., но мы рассматриваем раздел CPU. Для теста необходимо использовать команду:
На картинке вы можете увидеть различные метрики: скорость, задержку и справедливость потоков. Мы проводим тест на решении 30 000 простых чисел, но вы можете выбрать любой другой подходящий тест. По умолчанию утилита использует один из потоков, но современные программы используют как минимум 2 или более потоков, поэтому нам нужны опции, которые моделируют нагрузку на программное обеспечение с помощью трафика. Для этого мы можем использовать:
Этот тест мы проводим на машине с 1 ядром процессора с возможностью обработки 4 потоков, но что, если мы увеличим мощность? Давайте проведем такой же тест на машине с 4-ядерным процессором и возможностью обрабатывать 16 потоков. Для наглядности эксперимента мы запускаем один и тот же тест:
Среднее значение стремительно падает до 6X! Также эту утилиту можно использовать для сравнения или просто для оценки мощности серверного компонента!
В этом руководстве мы рассмотрели пример инструмента для стресс-тестирования процессора, сфокусировавшись на sysbench для Linux-машин. В руководстве рассмотрен процесс обновления пакетов, установки sysbench и проведения стресс-тестов ЦП. На практических примерах было показано, как оценить производительность процессора сервера, обращая внимание на влияние различных факторов, таких как количество потоков и ядер процессора. В заключение руководство подчеркивает полезность инструментов стресс-тестирования для сравнения компонентов сервера и оценки мощности системы.