cpu stress test и утилита stress


cpu stress test-ы проводятся при нагрузочном тестировании серверов, на которых размещаются веб-приложения.

stress — утилита Linux, позволяющая тестировать работу серверов под нагрузкой. Ее можно запускать с различными ключами и передавать значения, определяющие нагрузку. Для cpu stress test это количество ядер CPU, которое нужно загрузить.



Стресс тестирование проводится для того, чтобы выяснить способность архитектурного решения справляться с нагрузкой и выбрать наиболее подходящий вариант для конкретного проекта.



cpu stress test


Утилита stress для нагрузочного тестирования на Debian устанавливается из репозитория

apt-get install stress



При ее запуске выполняются различные математические операции, а также сжатие, шифрование и т.п.

Далее она будет запускаться на виртуальной машине с 2-мя ядрами CPU. Результаты анализируются при помощи top.


Новая машина с нулевым LA и практически ничего не потребляющим единственным процессом MySQL.

cpu stress test

Далее установлена утилита stress и запущена с загрузкой одного ядра

stress -c 1 &

[1] 2194
root@test-server:~# stress: info: [2194] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd


Значение LA выросло, CPU загружен на 100%

stress тест


При нажатии 1 выводятся все ядра, выделяемые гипервизором. Отображаются 12, фактически доступны 2.

нагрузочное тестирование


Дополнительно запускаем и бэкграунде (с & в конце) еще один аналогичный процесс. Сейчас нагружается 2 ядра.

cpu stress тест


Если запустить stress -c 4 &, то можно увидеть, что грузятся те же 200% CPU, но нагрузка распределяется в том числе на те ядра, что недоступны. При этом растет steal time. Фактически это означает, что другие VM на мастер сервере начали недополучать ресурсы.



Также их не хватает для выполнения операций тестирования на текущей машине.

cpu stress test5

Для более разнообразных тестов с таймаутами и формированием отчетов, в том числе cpu stress test, есть утилита stress-ng. Она также есть в репозиториях Ubuntu/Debian.

В man по stress-ng имеется подробная информация о доступных ключах.



Стресс тестирование нужно на этапе проектирования системы. Для виртуальных серверов оно покажет все недостатки, для физических дополнительно выявит возможные проблемы с железом.

Читайте про утилиту top и ее возможности.

Сказать спасибо