Утилита stress-ng#

stress-ng проводит стресс-тестирование (с повышенными нагрузками) системы. Проверяет различные физические подсистемы машины, а также интерфейсы ядра операционной системы.

stress-ng также имеет широкий спектр нагрузочных тестов, специфичных для процессора, которые используют операции с плавающей запятой, целыми числами, манипуляции с битами и потоком управления.

Утилита помогает заставить машину работать продуктивнее и устранять проблемы с оборудованием (например, перегрев), а также ошибки операционной системы, возникающие только при перегрузке.

Внимание

Используйте stress-ng с осторожностью.

Некоторые тесты могут привести к перегреву системы на плохо спроектированном оборудовании, а также к сбою системы.

Запуск stress-ng пользователем с административными полномочиями (например, root) приведет к корректировке настроек памяти в системе, чтобы сделать факторы нагрузки неуничтожимыми при нехватке памяти. Также возможна регулировка класса и уровней ionice (инструмент для установки/получения класса планирования ввода-вывода и приоритета для процессов).

stress-ng может измерять производительность тестов. Это может быть полезно для наблюдения за изменениями производительности в разных выпусках операционных систем или при смене оборудования, однако не является целевым применением.

Можно указать количество процессов для запуска каждого типа стресс-теста. При указании нулевого значения будет выбрано количество доступных процессоров, определенное в sysconf(_SC_NPROCESSORS_CONF). Если определение невозможно, то будет использовано количество подключенных процессоров. Если значение отрицательное, используется количество процессоров, находящихся в режиме онлайн.

Синтаксис утилиты:

stress-ng <options> <args>

Где:

  • <options> - опции;

  • <args> - аргументы.

Часто используемые опции утилиты представлены в таблице ниже.

Опция

Описание

-c <N>, --cpu <N>

Запускает N рабочих приложений, выполняющих нагрузку на ЦП, последовательно применяя различные методы нагрузки. Вместо использования всех методов нагрузки ЦП можно указать конкретный с помощью опции --cpu-method

--cpu-method <method>

Указывает метод загрузки процессора (например, bitops - использование различных битовых операций с bithack, а именно: обратные биты, проверка четности, подсчет битов, округление до ближайшей степени 2). По умолчанию все методы выполняются последовательно, однако при необходимости можно указать один

--io-ops <N>

Останавливает ввод/вывод рабочих приложений после N сложных операций

-m <N>, --vm <N>

Запускает N рабочих приложений, непрерывно вызывающих mmap/munmap (сохранение/отмена отображения файлов или устройств в памяти) и записывающих данные в выделенную память. Это может привести к отключению службы удаления OOM ядра в системе, если недостаточно физической памяти и нет подкачки

--vm-bytes <N>

Устанавливает N байт виртуальной памяти на каждое рабочее приложение, значение по умолчанию — 256 Мб. Размер можно указать в процентах от общего объема доступной памяти или в байтах, килобайтах, мегабайтах и ​​гигабайтах, используя суффиксы b, k, m или g

-t <T>, --timeout <T>

Запускает каждый стресс-тест не менее T секунд. Единицы времени можно указать в секундах, минутах, часах, днях или годах с помощью суффиксов s, m, h, d или y. По истечении времени каждому стрессору будет отправлен сигнал SIGALRM, однако, если стресс-тест будет заменен, при системном вызове для обеспечения бесперебойной работы или при выполнении очистки (например, удалении сотен тестовых файлов) окончательное завершение может занять некоторое время. Тайм-аут 0 будет запускать stress-ng без перерыва. Значение по умолчанию - 24 часа

Пример использования#

Чтобы запустить стресс-тестирование ЦП с помощью 8 рабочих приложений, используйте команду:

stress-ng -c 8