- How to Stress Test CPU in Linux
- Stress test Linux CPU using the Terminal
- Happy System, Happy Life 😁
- Стресс-тестирование систем в Linux – утилита stress-ng
- Основные особенности и возможности stress-ng
- Синтаксис stress-ng
- Основные опции stress-ng
- Тестирование процессора
- Тестирование дисковой подсистемы
- Тестирование памяти
- Комплексное тестирование
- Заключение
- Похожие записи:
How to Stress Test CPU in Linux
If you prefer using a GUI solution over the terminal, I have just the easiest method for you to stress-test your system.
There is a GUI utility GtkStressTesting, which helps you stress test and monitor temperature simultaneously. It provides various presets to stress-test the system and provides an ability to choose how many cores you want to work with during the test.
GtkStressTesting is available as a Flatpak, so if you haven’t already enabled Flatpak support, refer to our Flatpak setup guide.
Once you have enabled Flatpak support, the GtkStressTesting utility can be installed using the following via the terminal (if not software center)
flatpak install flathub com.leinardi.gst
After the installation, you can start the GtkStressTesting utility from the system menu.
Here, I would recommend you click on the Read all button and enter the sudo password so the utility can fetch all the information of your system:
From here, you can choose how long you want to stress test your system (you can always stop the process if the temp gets too high) and choose the max number available in the Workers: Auto .
I went for 12 cores and 5 mins of stress testing:
Once you are done, click on the start button and monitor the temperatures, and if they reach beyond 90, stop the stress testing.
My system went to 85 max during stress testing:
Pretty easy way to stress test the CPU. Isn’t it? 😉
Stress test Linux CPU using the Terminal
You’d need two utilities to stress test using a terminal: s-tui and stress.
You can get these tools installed from the default repositories or using pip. It is easier with default repositories if you are okay with using an older version of the tool (a tad bit).
Here are the commands that will help you install them on popular Linux distros:
For Ubuntu/Debian base:
sudo apt install s-tui stress
For Arch Linux:
sudo pacman -S s-tui stress
For Fedora/RHEL:
sudo dnf install s-tui stress
If you want to use pip for the latest version, here is the command:
Once you are done with the installation, launch the s-tui utility in the terminal:
And you would be met with the following:
You can use the mouse or keyboard arrow keys to navigate through the menu, so click on the Stres options and choose how long you want to stress test the system (in seconds):
And finally, select the Stress option, and it will start the stress testing for a specified period:
And if the temperature gets out of control, you can click on the Quit button to stop the stress test manually. Additionally, if you want to store the data in the .csv format, the tool gives you the feature.
To store the data, all you have to do is append the -c flag while starting the s-tui utility as shown:
And if you want to save the file with a name to your liking, you’d have to use the —csv-file flag as shown:
For example, here, I named the file Hello.scv :
You can explore more about the tool on its GitHub page.
Suggested Read 📖
Happy System, Happy Life 😁
Not every user realizes the benefits of a stress test. Sometimes it scares them off with the idea of their system reaching its limits for no reason.
However, the test will help you quickly evaluate and monitor your system’s condition. Things like abnormal temperature spikes and CPU being unable to handle what it is should help you identify hardware issues early on.
In either case, you can refer to our temperature monitoring resource if you want to keep your CPU monitor in check without performing stress tests.
You can also check out some of the system monitoring tools or htop alternatives for Linux to keep an eye on your system resources.
💬 What do you think about stress testing your CPU in Linux? Do you think we should do it? Share your thoughts on it in the comments below.
Стресс-тестирование систем в Linux – утилита stress-ng
Для организации и проведения нагрузочного стресс-тестирования в Linux-системах существует утилита stress-ng. С помощью неё несложно сгенерировать реальную рабочую нагрузку на тестируемые подсистемы и, соответственно, оценить её возможности. Утилита, традиционно для Linux, предоставляет для работы интерфейс командной строки. Однако, это ни в коей мере не делает её неудобной. Со своими задачами она справляется на «отлично». В данной статье приведены инструкции, отражающие основы работы с утилитой stress-ng для некоторых самых распространённых ситуаций в стресс-тестировании систем на основе Linux.
Основные особенности и возможности stress-ng
Возможности, которыми обладает утилита stress-ng, довольно широки. Об этом свидетельствует огромное количество всевозможных опций, которыми её наделили разработчики.
Но ключевой особенностью stress-ng является то, что это полноценный инструмент со встроенными тестами. В отличие от многих других аналогов, при выполнении теста не производится обращений к сторонним и/или внешним ресурсам. Таким образом, stress-ng абсолютно самодостаточна. Практически в любом дистрибутиве Linux она доступна в стандартном репозитории и устанавливается с помощью системы управления пакетами (СУП) дистрибутива. Например, в Ubuntu:
$ sudo apt-get install stress-ng
Кроме всего прочего, stress-ng в своём составе очень качественные тесты для тестирования процессоров, в совокупности позволяющие наиболее полно сгенерировать нагрузку на CPU, используя такие методы как целочисленные и с плавающей запятой, битовые операции, комплексные вычисления и т. д.
Синтаксис stress-ng
Как уже было отмечено, stress-ng имеет настолько огромный набор опций, что в рамках данной статьи целесообразнее остановиться лишь на основных, позволяющих протестировать все основные подсистемы: CPU, виртуальную память, а также дисковую подсистему.
Синтаксис stress-ng довольно прост:
Задаёт конкретный метод тестирования виртуальной памяти. По-умолчанию выполняются все доступные для данной категории тесты, последовательно друг за другом. Подробнее в официальном руководстве по команде man stress-ng.
—vm-method mЗадаёт конкретный метод тестирования виртуальной памяти. По-умолчанию выполняются все доступные для данной категории тесты, последовательно друг за другом. Подробнее в официальном руководстве по команде man stress-ng.
Основные опции stress-ng
В таблице ниже указаны основные опции утилиты
Опция | Значение |
—class name | Задаёт тип теста. В качестве name указывается например cpu, memory, vm, io и другие. |
—metrics | Указывает, что по завершению теста должна быть выведена статистика основных метрик, отражающих поведение системы во время теста. |
—metrics-brief | То же, что и —metrics, но выводит ненулевые метрики. |
—cpu-method method | Задаёт метод генерации нагрузки для процессора. По-умолчанию выполняются все доступные для данной категории тесты, последовательно друг за другом. Более подробно об этой опции можно узнать, выполнив команду man stress-ng. |
—cpu N | Запускает для стресс-теста процессора N стрессоров для каждого его потока. |
—cpu-ops N | Указывает, через какое количество bogo-операций необходимо остановить тест CPU. |
—hdd-ops N | Указывает, через какое количество bogo-операций необходимо остановить тест жёстких дисков. |
—hdd-bytes N | Записывает N байт для каждого процесса работы с жёстким диском. По-умолчанию равно 1 Гб. |
—vm N | Запускает для стресс-теста виртуальной памяти N стрессоров. |
—vm-bytes N | Размещает N байт для каждого процесса работы с памятью. По-умолчанию равно 256 Мб. Объём также может быть указан в процентах от общего объёма виртуальной памяти в системе. Значения можно задавать в бфйтах, килобайтах, мегабайтах и гигабайтах, используя суффиксы b, k, m и g соответственно. |
—sequential N | Задает N количество потоков для выполнения тестов, если N не указано или равно 0, то количество потоков равно числу процессоров. |
Для удобства и быстрого составления необходимых тестов рекомендуется пользоваться также некоторыми вспомогательными опциями, например:
- что бы запустить несколько экземпляров каждого стресс-теста используется опция —all N, где N – необходимое количество экземпляров;
- для установки таймаута, т. е. времени продолжительности стресс-теста используется опция —timeout.
Тестирование процессора
Для подавляющего большинства ситуаций классическим примером стресс-теста можно использовать тест, выполняемый следующей командой:
$ stress-ng --cpu 16 --cpu-method matrixprod --metrics --timeout 60
В данном тесте задействованы 16 потоков для тестирования 16-поточного процессора. Вывод результатов может быть следующим:
Естественно количество потоков следует задавать в соответствии со спецификацией используемого процессора.
Тестирование дисковой подсистемы
Для проведения стресс-тестирования накопителей, таких как жёсткие диски можно для начала провести низкоуровневый тест ввода вывода
$ stress-ng --sequential 0 --class io --timeout 60s --metrics-brief
Вывод команды будет следующим
Еще один стресс-тест дисков можно выполнить командой
$ stress-ng --hdd 5 --hdd-ops 100000
В данном случае будет запущено 5 стрессоров для жёстких дисков, которые будут остановлены по завершении 100 тыс. bogo-операций.
Во время тестирования можно смотреть загрузку командой iostat
Тестирование памяти
Что бы провести стресс-тест памяти используйте команду
$ stress-ng --sequential 0 --class memory --timeout 60s --metrics-brief
После окончания мы получим результат проверки приблизительно следующего вида
Комплексное тестирование
Если необходимо провести комплексное стресс-тестирование, можно задействовать работу нескольких основных подсистем вместе одной командой:
$ stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief
Эта команда запустит тест для CPU в 8 потоков, тест виртуальной памяти с размещением в ней одного гигабайта данных, а также 4 стрессора для тестирования операций ввода/вывода.
Что бы запустить тестирование всего «железа», используется команда
$ stress-ng --sequential 0 --timeout 60s --metrics-brief
Эта команда запустит все тесты. После выполнения результат будет выведен в консоль. Во время выполнения команды лучше компьютер не трогать
Заключение
В заключение стоит ещё раз отметить, что утилита stress-ng по своим возможностям очень универсальна и позволяет качественно протестировать любую систему. Приведенные выше примеры охватывают наиболее распространённые ситуации по нагрузочному тестированию Linux-систем. Для проведения специфичных или более сложных тестов рекомендуется обращаться к официальному руководству по использованию утилиты, доступному по команде man stress-ng.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.