Утилита stress — это инструмент командной строки Linux, предназначенный для создания нагрузки на различные компоненты операционной системы и ПК (процессор, оперативную память, жесткий диск и другие). С ее помощью пользователь может проверить стабильность работы ОС, ее производительность, а также поведение Linux в условиях ограниченных ресурсов.
Кроме того, существует усовершенствованная версия инструмента stress — stress-ng. Она обладает значительно расширенным функционалом и поддерживает выполнение более чем 200 различных стресс-тестов (так называемых «стрессоров»).
В этой статье мы расскажем, как установить и использовать утилиты stress и stress-ng в Linux.
Содержание:
- Установка stress и stress-ng в Linux
- Синтаксис stress и stress-ng
- Создание нагрузки на ЦП
- Тестирование производительности ОЗУ
- Одновременная нагрузка на несколько компонентов ОС
- Выводы
Установка stress и stress-ng в Linux
Пакеты утилит stress и stress-ng содержатся в стандартных репозиториях большинства популярных дистрибутивов Linux. Чтобы установить эти инструменты, достаточно выполнить одну команду.
Для Debian / Ubuntu Linux:
Читайте также: Моделирование нагрузки на веб-сервера с помощью siege в Linux.
И:
Для RHEL / CentOS / Fedora Linux:
Синтаксис stress и stress-ng
Общий синтаксис команд stress и stress-ng выглядит следующим образом:
Где:
option— опции, которые расширяют функционал утилиты;argument— аргументы опций.
Чтобы вывести в окно терминала список всех параметров stress или stress-ng, выполните одну из следующих команд:
Читайте также: Как установить утилиту iperf в Linux.
Создание нагрузки на ЦП
Одним из основных способов проверки стабильности работы ОС является создание нагрузки на центральный процессор. Для этого в утилите stress используется опция --cpu, которая запускает потоки, выполняющих функцию sqrt(). Например, следующая команда инициирует 8 потоков с вычислением sqrt(), работающих в течение 10 секунд:
На скриншоте выше видно, что средние значения нагрузки на ЦП действительно увеличились.
Такую же операцию можно сделать, используя stress-ng. Поскольку эта команда имеет расширенный функционал, то опция --cpu будет запускать сразу все доступные методы нагрузки на процессор (такие, как sqrt(), exp(), log() и другие). К примеру:
Если нужно использовать конкретный метод нагрузки на ЦП, то в предыдущую команду следует добавить параметр --cpu-method. Допустим, мы хотим создать нагрузку при помощи алгоритма fft (от англ. Fast Fourier Transform):
Тестирование производительности ОЗУ
Для увеличения активности в оперативной памяти утилита stress применяет функции malloc() и free(). Например, приведенная ниже команда создаст 3 потока виртуальной памяти, которые будут работать на протяжении 10 секунд:
Подобные действия можно сделать и с командой stress-ng:
Читайте также: Мониторинг и анализ производительности с помощью Perf в Linux.
Одновременная нагрузка на несколько компонентов ОС
Работоспособность отдельных компонентов ПК взаимосвязана и часто может зависеть от производительности других подсистем. Поэтому иногда целесообразно выполнять нагрузочное тестирование всех ключевых компонентов операционной системы одновременно.
Например:
Давайте детальнее разберем опции из предыдущей команды:
--cpu 4— запускает 4 потока, которые создают нагрузку на центральный процессор;--io 3— запускает 3 потока для тестирования нагрузки на подсистему дискового ввода-вывода (потоки выполняют операции записи и чтения файлов);--vm 2— создает 2 потока виртуальной памяти, которые будут выделять, использовать и освобождать память ОЗУ в цикле;--vm-bytes 256M— указывает, что каждый поток виртуальной памяти будет работать с 256 МБ памяти;--timeout 20s— устанавливает время выполнения теста на 20 секунд.
Аналогично попробуем нагрузить все основные компоненты ОС с помощью утилиты stress-ng:
Выводы
Мы познакомили Вас с базовыми возможностями инструментов stress и stress-ng в Linux. Функциональность этих утилит значительно шире, чем рассмотренная в статье. Рекомендуем ознакомиться с их man-страницами для более полного понимания доступных параметров и режимов работы.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.



































