stress-ng — специализированная консольная утилита для проведения нагрузочного стресс-тестирования аппаратного обеспечения различными способами.
Утилита выполняет реальную рабочую нагрузку на тестируемые подсистемы и производит оценку её возможности.
Ключевой особенностью stress-ng является то, что это полноценный инструмент со встроенными тестами. При выполнении теста не производится обращений к сторонним и/или внешним ресурсам.
Использовать stress-ng необходимо с осторожностью, так как некоторые тесты могут повлиять на точки срабатывания тепловой зоны системы на плохо спроектированном оборудовании. Это может повлиять на производительность системы и вызвать чрезмерную перегрузку системы, которую бывает трудно остановить.
При запуске с соответствующими опциями stress-ng позволяет запустить более 270 стресс-тестов общего назначения, различной разновидности и качества нагрузки на используемое оборудование. Результаты тестов выводятся в виде удобной для восприятия таблицы, отдельной строкой для каждого выполненного теста.
Для наиболее полноценного тестирования утилиту надо запускать с правами администратора (root).
Лицензия:
GPL
Синтаксис:
stress-ng [опции [аргументы]]
Пример:
stress-ng --cpu 8 --io 4 --vm 2 --vm-bytes 128M --fork 4 --timeout 10s
Основные опции управления:
Опция | Описание |
---|---|
--abort | Прервать все стресс-тесты при сбое одного из них |
--aggressive | Включить все агрессивные опции |
-a N, --all N | Запустить N рабочих для каждого стресс-теста |
-b N, --backoff N | Задержка в N микросекунд перед началом работы |
--class name | Указать класс стресс-тестов, использовать с --sequential |
-n, --dry-run | Не выполнять на самом деле |
--ftrace | Включить трассировку вызовов функций ядра |
-h, --help | Показать справку |
--ignite-cpu | Изменить настройки ядра для нагрузки процессора |
--ionice-class C | Указать класс ionice (idle, besteffort, realtime) |
--ionice-level L | Указать уровень ionice (0 максимум, 7 минимум) |
-j, --job jobfile | Запустить указанный файл с заданиями |
-k, --keep-name | Сохранить имена рабочих в виде 'stress-ng' |
--keep-files | Не удалять файлы или каталоги |
--klog-check | Проверить журнал сообщений ядра на наличие ошибок |
--log-brief | Выводить менее подробные сообщения в журнал |
--log-file | Filename записывать сообщения в файл журнала |
--maximize | Включить максимальные опции стресса |
--max-fd | Установить максимальное ограничение дескрипторов файлов |
-M, --metrics | Вывести псевдометрики активности |
--metrics-brief | Включить метрики и показать только ненулевые результаты |
--minimize | Включить минимальные опции стресса |
--no-madvise | Не использовать случайные опции madvise для каждого mmap |
--no-rand-seed | Использовать одну и ту же константу для генерации случайных чисел |
--oomable | Не перезапускать стрессор, если он получает ошибку OOM |
--page-in | Активировать выделенные, но не загруженные в память страницы |
--parallel N | Синоним для 'all N' |
--pathological | Включить стрессоры, известные своей способностью "зависнуть" машину |
--perf | Показать статистику производительности |
-q, --quiet | Тихий вывод |
-r, --random N | Запустить N случайных рабочих |
--sched type | Установить тип планировщика |
--sched-prio N | Установить уровень приоритета планировщика N |
--sched-period N | Установить период для SCHED_DEADLINE в значение N наносекунд (только для Linux) |
--sched-runtime N | Установить время выполнения для SCHED_DEADLINE в значение N наносекунд (только для Linux) |
--sched-deadline N | Установить срок для SCHED_DEADLINE в значение N наносекунд (только для Linux) |
--sched-reclaim | Установить возврат пропускной способности процессора для планировщика с дедлайном (только для Linux) |
--seed N | Установить начальное значение генератора случайных чисел на 64 бита |
--sequential N | Выполнить все стрессоры по очереди, вызывая N из них |
--skip-silent | Молча пропускать не реализованные стрессоры |
--stressors | Показать доступные стресс-тесты |
--smart | Показывать изменения в данных S.M.A.R.T. |
--syslog | Записывать сообщения в системный журнал |
--taskset | Использовать определенные ЦП (установить привязку ЦП) |
--temp-path path | Указать путь для временных каталогов и файлов |
--thrash | Вызвать интенсивное перемещение всех страниц, вызывая множественное обращение к подкачке |
-t N, --timeout T | Время ожидания в T секунд |
--timer-slack | Включить режим расслабления таймера |
--times | Показать сводку времени выполнения в конце выполнения |
--timestamp | Добавить временную метку к выводу в журнал |
--tz | Собирать данные о температуре из термозон (только для Linux) |
-v, --verbose | Подробный вывод |
--verify | Проверить результаты (недоступно для всех тестов) |
--verifiable | Показать стрессоры, позволяющие проверку через --verify |
-V, --version | Показать версию |
-Y, --yaml file | Вывести результаты в файл в формате YAML |
-x, --exclude | Список стрессоров, которые необходимо исключить (не выполнять) |
Подробнее о stress-ng:
stress-ng --help
Стресс-тест процессора (16 потоков для тестирования 16-поточного процессора)
Количество потоков следует задавать в соответствии со спецификацией используемого процессора.
stress-ng --cpu 16 --cpu-method matrixprod --metrics --timeout 60
Пример вывода:
stress-ng: info: [25024] setting to a 60 second run per stressor
stress-ng: info: [25024] dispatching hogs: 4 cpu
stress-ng: info: [25024] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s CPU used per
stress-ng: info: [25024] (secs) (secs) (secs) (real time) (usr+sys time) instance (%)
stress-ng: info: [25024] cpu 38178 30.00 118.42 0.00 1272.50 322.39 98.68
stress-ng: info: [25024] successful run completed in 30.01s
stress-ng --sequential 0 --class memory --timeout 60s --metrics-brief
Пример вывода:
stress-ng: info: [27114] disabled 'oom-pipe' as it may hang or reboot the machine (enable it with the --pathological option)
stress-ng: info: [27114] setting to a 60 second run per stressor
stress-ng: info: [27114] dispatching hogs: 4 atomic, 4 bad-altstack, 4 bsearch, 4 context, 4 full, 4 heapsort, 4 hsearch, 4 judy, 4 list, 4 lockbus, 4 lsearch, 4 malloc, 4 matrix, 4 matrix-3d, 4 mcontend, 4 membarrier, 4 memcpy, 4 memfd, 4 memrate, 4 memthrash, 4 mergesort, 4 mincore, 4 misaligned, 4 null, 4 numa, 4 pipe, 4 pipeherd, 4 prefetch, 4 qsort, 4 radixsort, 4 randlist, 4 remap, 4 resources, 4 rmap, 4 shellsort, 4 skiplist, 4 sparsematrix, 4 stack, 4 stackmmap, 4 str, 4 stream, 4 tlb-shootdown, 4 tmpfs, 4 tree, 4 tsearch, 4 vm, 4 vm-addr, 4 vm-rw, 4 vm-segv, 4 wcs, 4 zero, 4 zlib
stress-ng: info: [27114] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [27114] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [27114] atomic 4221890 16.88 66.43 0.03 250136.88 63525.28
stress-ng: info: [27114] successful run completed in 16.88s
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".