Введение / Зачем это нужно
stress-ng — это современная замена классической утилите stress, разработанная специально для комплексной проверки стабильности Linux. Инструмент генерирует контролируемую нагрузку на процессор, оперативную память, дисковую подсистему, сеть и аппаратные кэши. Он незаменим при тестировании новых серверов, проверке стабильности разгона, валидации работы системы охлаждения или отладке планировщика задач ядра.
После выполнения этого гайда вы получите полностью готовую к работе утилиту и научитесь безопасно запускать стресс-тесты без риска необратимого зависания системы.
Требования / Подготовка
Перед началом убедитесь, что у вас есть:
- Доступ к терминалу с правами суперпользователя (
sudoилиroot) - Стабильное интернет-соединение для загрузки пакетов
- Дистрибутив Linux на базе Debian, Ubuntu, Fedora, Arch или их производных
⚠️ Важно: Запуск длительных стресс-тестов на ноутбуках от сети без охлаждения может привести к троттлингу или аварийному отключению. Мониторьте температуру процессора параллельно с помощью
sensorsилиhtop.
Шаг 1: Обновление кэша пакетов
Прежде чем устанавливать новое ПО, синхронизируйте локальные индексы с репозиториями. Это предотвратит конфликты версий и ошибки «package not found».
# Для Debian/Ubuntu
sudo apt update
# Для Fedora/RHEL
sudo dnf check-update
# Для Arch/Manjaro
sudo pacman -Sy
Шаг 2: Установка через менеджер пакетов
stress-ng доступен в стандартных репозиториях большинства современных дистрибутивов. Выполните команду, соответствующую вашей системе:
# Debian/Ubuntu
sudo apt install stress-ng -y
# Fedora
sudo dnf install stress-ng -y
# Arch Linux
sudo pacman -S stress-ng --noconfirm
Пакет автоматически разрешит зависимости и скопирует бинарные файлы в /usr/bin/.
Шаг 3: Проверка корректности установки
Убедитесь, что утилита успешно встала и доступна в переменной окружения $PATH.
stress-ng --version
Вывод должен содержать номер версии (например, stress-ng 0.16.04). Если система отвечает command not found, проверьте, не попала ли установка в логи с ошибками зависимостей, и повторите шаг 2.
Шаг 4: Первый запуск и стресс-тест
Попробуем безопасно нагрузить систему на короткое время. Ключ --cpu 0 задействует все доступные логические ядра, а --timeout 10s автоматически остановит тест через 10 секунд.
stress-ng --cpu 0 --timeout 10s --metrics-brief
Флаг --metrics-brief выведет статистику по количеству операций (bogo ops) и времени выполнения, что удобно для быстрой оценки производительности без лишнего вывода в консоль.
Проверка результата
После завершения теста в терминале появится сводная таблица. Обратите внимание на столбец bogo ops/s — он показывает среднюю скорость выполнения тестовых операций. Чем выше значение, тем стабильнее работает система под нагрузкой.
Если вам нужно прервать тест до истечения таймаута, просто нажмите Ctrl + C в активном окне терминала. Утилита корректно завершит дочерние процессы, очистит временные файлы и освободит память.
Возможные проблемы
- Ошибка
Permission deniedпри работе с сокетами или/proc/sys/...: Некоторые метрики требуют доступа к системным параметрам. Запустите команду сsudo, если тестируете работу с сетевыми интерфейсами или файловой системой. - Система зависает или срабатывает OOM-killer: Вы выделили слишком много потоков для оперативной памяти. Уменьшите параметр нагрузки, например
--vm 2 --vm-bytes 75%, и обязательно используйте--timeoutдля автоматической остановки. - Пакет отсутствует в официальном репозитории: Для старых или минимальных сборок Linux соберите утилиту из исходников, скачав архив с официального релиза на GitHub, либо подключите EPEL-репозиторий на RHEL-совместимых системах.