Часто системным администраторам необходимо проверить несущую способность системы, чтобы понять пределы ее производительности. Для этого существует несколько инструментов. В этой статье мы узнаем, как провести стресс-тестирование Linux-сервера с помощью утилит stress и stress-ng.
Как провести стресс-тестирование сервера Linux
Для этого мы будем использовать stress и stress-ng.
stress - это простой генератор рабочих нагрузок для Linux. Он позволяет вам оказывать настраиваемое количество нагрузки на процессор, память, диск и ввод-вывод на систему.
stress-ng - еще один инструмент, позволяющий выполнять 60+ типов стресс-тестов.
Вот команда для установки пакета stress в Linux.
RHEL, Fedora, CentOS или SUSE
1 | sudo yum install stress |
Ubuntu или Debian
1 | sudo apt-get install stress |
Вот синтаксис команды stress.
1 | stress [OPTION] |
Несколько простых команд.
Стресс с использованием задачи, связанной с процессором
1 | stress -c 4 |
Стресс с использованием задачи, связанной с IO
1 | stress -i 2 |
Вот еще один пример команды, в которой мы проверяем время работы системы до и после выполнения команды stress, чтобы увидеть разницу.
1 2 3 | uptime stress -c 2 -i 1 -m 1 --vm-bytes 128M -t 10s uptime |
В приведенной выше команде,
- -c 2 : Создать два потока, крутящихся на sqrt()
- -i 1 : Создать однин поток, работающего на sync()
- -m 1 : Создать один поток, выполняющего malloc()/free()
- -vm-bytes 128M : Malloc 128MB для каждого рабочего vm (по умолчанию 256MB)
- -t 10s : Таймаут через десять секунд
- -v : Быть "многословным"
Вы также можете использовать команду stress-ng для этой цели. Вот команда для ее установки в вашей системе
1 2 3 4 5 | cd /tmp git clone https://github.com/ColinIanKing/stress-ng.git cd stress-ng make make install |
После того, как вы установили команду stress-ng, вот синтаксис для ее запуска с парой примеров.
1 | stress-ng [options] |
Вот пример команды для тренировки процессора путем последовательной отработки всех различных методов нагрузки на процессор:
1 2 3 | uptime stress-ng --cpu 4 --timeout 60s --metrics-brief uptime |
Аналогично, вы можете выполнить следующую команду, чтобы заставить записывать, читать и удалять временные файлы.
1 | stress-ng --disk 2 --timeout 60s --metrics-brief |
Вы можете обратиться к страницам документации man, чтобы получить информацию обо всех доступных опциях команд stress и stress-ng.
Заключение
В этой статье мы узнали, как проводить стресс-тестирование Linux-сервера с помощью инструментов stress и stress-ng. Это полезно для системных администраторов, чтобы проверить, могут ли их Linux-системы выдержать пользовательскую нагрузку.