stress-ng — утилита с открытым исходным кодом для стресс-тестирования и нагружения вычислительных систем под управлением Unix-подобных операционных систем. Программа разработана для создания искусственной нагрузки на различные подсистемы компьютера — центральный процессор, память, ввод-вывод, файловую систему, сетевые интерфейсы и другие механизмы ядра — с целью оценки устойчивости, производительности и поведения системы в экстремальных условиях. stress-ng предоставляет набор модулей (называемых стрессорами), каждый из которых имитирует специфический тип операций или нагрузок для выявления узких мест, ошибок аппаратного обеспечения и проблем в программных стэках.
Первоначально созданная как расширение и переосмысление более простых инструментов для стресс-тестирования, утилита получила развитие благодаря сообществу разработчиков и системных администраторов, заинтересованных в комплексной проверке серверов и встраиваемых систем. Программа обычно запускается из командной строки и поддерживает гибкую конфигурацию числа потоков, длительности теста, комбинации стрессоров и целевых ограничений, что позволяет автоматизировать проверку в рамках CI/CD или ручных процедур диагностики. Документация и поведение отдельных модулей могут варьироваться, поэтому для конкретных деталей рекомендуется обращаться к встроенной справке программы.
- Многообразие стрессоров: содержит десятки специализированных модулей для нагрузки CPU, памяти, кешей, системы ввода-вывода, файловых операций, сетевых протоколов и функций ядра.
- Параллельное выполнение: позволяет запускать несколько экземпляров стрессоров в отдельных потоках или процессах для имитации реальной конкуренции за ресурсы.
- Гибкая конфигурация: поддержка выбора числа рабочих единиц, длительности, циклов и параметров конкретных тестов через командную строку.
- Мониторинг и отчётность: выводит статистику о выполнении тестов, ошибках и времени выполнения; может интегрироваться с внешними средствами мониторинга.
- Сценарии тестирования: подходит для функционального тестирования, регрессионного контроля, проверки стабильности под нагрузкой и стресс-тестирования оборудования при валидации систем.
- Адаптация под систему: многие стрессоры учитывают характеристики целевой платформы (например, число ядер или объём памяти) для корректного распределения нагрузки.
- Автономность и скриптинг: может использоваться в автоматизированных сценариях тестирования и интеграции с инструментами развёртывания и CI.