Linux cpu benchmark test

Стресс тест процессора в Linux

Прогнал я тест Linpack и задумался: а не пора ли мне поменять термопасту на своём ноутбуке?

Да, по результатам нескольких тестов подряд (не буду захломлять статью картинками) видно, что процессор уходит в троттлинг (пропуск тактов и сброс частоты при нагреве), но вот, как быстро он начинает это делать?

Стресстест процессора в терминале Linux

Задавшись этим вопросом и поискав в интернете утилиты, я понял, что основная проблема в решении поставленной мной задачи — одновременный запуск, как минимум пары утилит и разбегающиеся глаза в двух окнах. И я пришёл к выводу, что мне больше подходит консольный вариант, нежели разноцветные окна открытых программ.

Начал я с sysbench:

sudo apt install sysbench

sysbench —num-threads=4 —test=cpu —cpu-max-prime=100000 run

  • —num-threads=4 — это количество потоков, у меня двухъядерный четырёхпотоковый Intel® Core™ i7-640M, поэтому 4;
  • —cpu-max-prime=100000 — это максимальное количество выполненных операций, я выставил в 100000, т.к. по умолчанию — 10000, слишком быстро завершают тест.

Потом я перешёл на Linpack. Так как процессор у меня от Intel и я имею некоторую долю лени (лень — двигатель прогресса), то я взял, скачал и распаковал готовый Intel-овский Linpack, предварительно создав в домашнем каталоге директорию linpack:

mkdir ./linpack
cd ./linpack
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9752/l_mklb_p_2018.3.011.tgz
tar -xvzf ./l_mklb_p_2018.3.011.tgz

Для AMD процессоров такой вариант я бы не стал пробовать, так как компилятор от Intel вставляет закладки, проверяющие процессор и если он не Intel. ну, подумаешь сотню-другую лишних инструкций процессор выполнит и заведомо проиграет в производительности. Для AMD лучше собрать Linpack из исходников, например, из этих. В данной статье сборку из исходников рассматривать не буду — читайте README в source code.

Вернёмся к Intel-овскому Linpack-у. Там много чего лишнего и мне не нужного, а то, что нужно рассмотрю относительно версии 2018.3.011. Сразу же перейду в нужную директорию, чтоб потом не набирать длинные команды:

Так как по умолчанию Intel-овский Linpack заточен под тестирование серверных Xeon-ов, создадим свой файл, который будет использоваться в качестве входных опций — просто уменьшим количество тестов, иначе устанем «пару-тройку дней» ждать завершения теста. У меня Linux Mint LMDE 3, поэтому я использую текстовый редактор xed, да и нравится он мне бОльшим функционалом, особенно, когда из-под root-а его запускать — он цвет на красный меняет. И так, создаём в этой же директории, в которую перешли, файл, например, my_test:

И в созданный файл копируем следующее содержимое:

Shared-memory version of Intel(R) Distribution for LINPACK* Benchmark. *Other names and brands may be claimed as the property of others.
Sample data file lininput_xeon64.
5 # number of tests
1000 2000 5000 10000 20000 # problem sizes
1000 2000 5008 10000 20000 # leading dimensions
4 2 2 2 1 # times to run a test
4 4 4 4 4 # alignment values (in KBytes)

Ну, и собственно запуск Linpack с созданным файлом:

./xlinpack_xeon64 -i ./my_test

Можно ещё заюзать stress-ng или stress, но поставленной мной задачи это всё-равно не решает. Вывода температуры, частот и времени от начала старта эти утилиты мне не показывают.

Температуру может показать sensors — подробнее про установку этой утилиты здесь. И эта утилита понадобится в дальнейшем рассмотрении моего вопроса. Линукс — велик и могуч: одна и та же задача может решаться по-разному. За Си мне лень было браться и я написал недостающую мне часть на BASH, ибо строк получилось не так уж и много. Без установленной sensors мой скрипт работать не будет. Фиксацию троттлинга естесственно не стал писать — его и так будет видно по сбросу частоты и температуре. Вот сам скрипт:

Сильно не ругайте за скидывание управляющих символов в stderr (1>&2), но это дело привычки, если вдруг потом вывод скрипта в файл отправлять, а там все эти ESC-апе последовательности точно не нужны, вот так и будет терминал цветным, а файл чистым. Что-то я отвлёкся.

Читайте также:  Найти исключения защитника windows

Я создал файл chk в директории с linpack-ом и записал скрипт в него, Вы можете сделать тоже самое, за исключением xed, если у Вас его нет:

И собственно то, ради чего всё затевалось — тест Linpack cо скриптом:

./chk ./xlinpack_xeon64 -i ./my_test

Да, я вижу, одно ядро нагрелось до критического TDP в 105°C за 86 секунд, но это мне ни о чём не говорит, а вот то, что с 50°C до 80°C процессор нагревается за 2 секунды — это уже показатель: термопасту точно пора менять — два года не менял, а вот с системой охлаждения останется вопрос, который проявят тесты после замены термопасты и термопроводящих прокладок на моём ноутбуке.

Почему именно 80°C я взял за отправную точку? Да просто потому, что именно эта температура заложена в BIOS, как температуры начала скидывания частот, да ещё и начало включения кулера выставлена в 55°C в угоду энергосбережению, но BIOS — InsydeH20, да ещё и с проверкой своей хэш-суммы и белым списком девайсов — та ещё головная боль. будет программатор — займусь им вплотную.

Скрипт писал на скорую руку и с ориентиром на Linpack, но он так же свободно работает и с другими консольными утилитами. Вот запуск с вышеизложенным sysbench:

./chk sysbench —num-threads=4 —test=cpu —cpu-max-prime=100000 run

Как видно из скриншота sysbench не даёт полную нагрузку на процессор, в отличии от Linpack-а.

Вот запуск с утилитой stress (подробнее про stress — здесь):

./chk stress —cpu 16

Естественно выход/окончание теста с утилитой stress осуществляется вручную по CTRL+C, отсюда и Error: 1 выведенная моей переменной PS1 из-за подобной реализации выхода из скрипта через exit 1.

Скрипт можно запустить и без опций, но тогда он только температуру и частоты в почти реальном времени показывает:

В любом случае выход из скрипта осуществляется автоматически, по окончании теста или можно выйти, нажав CTRL + C:

В общем: поставленную для себя задачу я решил и даже лучше — появилась целая надстройка над тестовыми утилитами. Осталось ноутбук разобрать и поменять таки термопасту с прокладками: как вспомню — аж страшно становится.

Источник

6 Useful Linux Apps to Stress Test and Benchmark CPU Performance

This article will list various utilities to perform CPU benchmarks and stress tests on your system. While many of these apps provide options to test other hardware components as well, this article will focus on CPU tests only.

HardInfo (Benchmark Only)

HardInfo is a graphical utility for Linux that displays information about various hardware components in your PC like processor, RAM modules, sensors, hard drives and so on. It also supports exporting a detailed report about your system in txt or html format so that you can share it with your friends, compare it with other systems or use it for debugging purposes.

Besides showing general information about your system, HardInfo provides a few benchmark tools to measure the performance of your hardware. As far as CPU benchmarking is concerned, it includes five methods: CPU Blowfish, CPU CryptoHash, CPU Fibonacci, CPU N-Queens and CPU Zlib.

To install HardInfo in Ubuntu, run the command below:

To run a CPU benchmark, click on any benchmark method under “Benchmarks” section, as shown in the screenshot below.

Once the benchmark has finished, HardInfo will tell you if a lower or higher score is better. It also displays scores for CPUs made by other vendors for easy comparison.

Sysbench (Benchmark Only)

Sysbench, as the name suggests, is a command line app to run benchmarks on your system. Written in Lua, Sysbench is mainly intended for doing database benchmarking. However it includes options to test CPU, memory and file throughput as well.

To install Sysbench in Ubuntu, run the command below:

To start a benchmark using Sysbench, run the following command:

  • “cpu” is the test type
  • “threads” is the number of threads created by sysbench to perform multi-threaded benchmarking

You can use other command line switches to customize the benchmark behavior. More details about these options can be found here.

Once the test has finished, you can use the “events per second” variable to gauge the performance of your CPU. Unfortunately unlike HardInfo, Sysbench does not provide benchmark results of other CPU models made by various hardware vendors out there. If you have multiple computers, you can run the test on both and then compare the numbers. Higher is the number of events per second, better is the CPU performance.

Читайте также:  Syncios iphone transfer tool windows

Stress (Stress Test Only)

Stress is a simple command line utility to conduct CPU, memory and disk input-output stress tests.

You can install stress in Ubuntu by running the following command:

Note that Stress will not run any benchmark test on your system, instead it will consistently hammer the CPU and make it run at 100%. You are advised to close all the running apps before doing a test. Running Stress for a longer period can crash the system and you may need to do a hard reboot to recover the system.

You can start the stress test by running the command below where “cpu” refers to the number of threads used for performing the test. To stop the test anytime, close the terminal or press to make it stop.

I used Stress extensively when I built a new PC for myself a year back. It helped me greatly in tweaking fan speeds in BIOS for improved cooling.

Stress-ng (Stress Test Only)

Stress-ng is an updated implementation of Stress tool mentioned above. It is much more advanced and includes hundreds of tests to put a load on your system.

You can install Stress-ng in Ubuntu by running the command below:

Note that the warning mentioned above applies to this tool as well. Running stress-ng for a long time can freeze your system making it recoverable through a hard reboot only.

You can start the stress-ng test by running the command below where “cpu” refers to the number of threads used for performing the test. To stop the test anytime, close the terminal or press to make it stop.

Running the command above will run around 70 CPU tests sequentially. However, you can run all of these tests in parallel by running the command below:

It is possible to customize the command using many other command line switches, but explaining all of them here is beyond the scope of this article. You can explore these options from here.

S-tui (Stress Test Only)

S-tui is a CPU resource monitor that uses a terminal based graphical interface to display data and graphs.

It supports CPU stress testing using the Stress app listed above while giving you a nice bird’s eye view on the various CPU parameters like frequency, temperature and utilization.

S-tui can be installed in Ubuntu by running the command below:

As it is just a terminal based frontend for Stress command line app, be vary of system lock up during high usage.

Run the following command to launch it. To stop the test anytime, close the terminal or press to make it stop.

7-Zip (Benchmark Only)

7-Zip is a file compression tool that can do extreme levels of compression on files and store them in a reduced size 7z archive format. 7-Zip comes with a built-in option to run LZMA compression benchmarks for measuring CPU performance.

To install 7-Zip in Ubuntu, run command:

To run single threaded benchmark, use the command below:

Multi-threaded benchmarking can be run by using the following command:

The results are in million instructions per second (MIPS). You can compare these results with other CPU models from here.

Conclusion

These are some of the free and open source utilities that can run CPU benchmarks on your system. In the good old days, running Flash Player in Firefox was an excellent way to stress test your CPU. These days, however, all the apps mentioned above do a pretty good job.

About the author

Nitesh Kumar

I am a freelancer software developer and content writer who loves Linux, open source software and the free software community.

Источник

Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга

Мы в 1cloud.ru подготовили подборку инструментов и скриптов для оценки производительности процессоров, СХД и памяти на Linux-машинах: Iometer, DD, vpsbench, HammerDB и 7-Zip.

Читайте также:  Как форматировать жесткий диск для linux

Другие наши подборки с бенчмарками:

  • Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone
  • Interbench, Fio, Hdparm, S и Bonnie


Фото — Bureau of Land Management Alaska — CC BY

Iometer

Это — бенчмарк для оценки производительности дисковой и сетевой подсистем. Подходит для работы как с одним сервером, так и целым кластером. Iometer представили инженеры Intel в 1998 году. В 2001-м корпорация передала исходники некоммерческой организации Open Source Development Labs (OSDL) по лицензии Intel Open Source License. С 2003 года поддержкой инструмента занимается группа энтузиастов — проект зарегистрирован на SourceForge.net.

Iometer состоит из генератора нагрузки dynamo и графического интерфейса. Правда, последний доступен только под Windows. Что касается генератора, то он позволяет имитировать нагрузку сторонних приложений — для этого создаются специальные тестовые шаблоны.

Бенчмарки показывают: пропускную способность, операции в секунду, латентность и загрузку процессора. Вычисляются не только средние значения величин, но и мин/макс.

Несмотря на то что последняя стабильная версия инструмента вышла в 2014 году, его до сих пор используют в Broadcom и Dell. Однако возраст системы все же сказывается. Во-первых, её интерфейс устарел и не менялся с 1998 года. Во-вторых, инструмент порой выводит не совсем адекватные результаты на массивах all-flash.

vpsbench

Простой скрипт для оценки производительности VPS. Распространяется по лицензии MIT. Вот пример его работы, приведенный в официальном репозитории на GitHub:

Утилита отображает количество ядер, частоту процессора, объемы задействованной памяти. Для оценки производительности дисков vpsbench выполняет последовательное и произвольное чтение/запись. Несмотря на то что утилита довольно старая (обновление на GitHub сделано около четырех лет назад) ее использует множество облачных провайдеров и ИТ-компаний.

HammerDB

Один из самых популярных открытых бенчмарков для нагрузочного тестирования баз данных. Поддержкой инструмента занимается некоммерческая организация TPC — Transaction Processing Performance Council. Её цель — разработка стандартов для БД-бенчмарков.

HammerDB создает тестовую схему БД, наполняет её данными и симулирует нагрузку нескольких виртуальных пользователей. Нагрузкой могут служить как транзакционные, так и аналитические операции. Поддерживает: Oracle Database, SQL Server, IBM Db2, MySQL, MariaDB, PostgreSQL и Redis.

Вокруг HammerDB сформировалось обширное комьюнити. Утилиту используют компании из 180 стран мира. Среди них: Intel, Dell, Lenovo, Red Hat и многие другие. Если вы хотите изучить возможности утилиты самостоятельно — можете начать с официальных гайдов.


Фото — lost places — CC BY

Этот архиватор имеет встроенный бенчмарк для тестирования скорости процессоров при сжатии определенного количества файлов. Также он подойдет для проверки RAM на ошибки. Для тестов используется алгоритм LZMA (Lempel–Ziv–Markov chain Algorithm). Он основан на схеме сжатия данных по словарю. Например, чтобы запустить бенчмарк с одним потоком и 64-мегабайтным словарем достаточно прописать команду:

Результат программа предоставит в формате MIPS (million instructions per second), что можно назвать недостатком. Этот параметр подходит для сравнения быстродействия процессоров одинаковой архитектуры, но в случае с различающимися архитектурами его применимость ограничена.

Инструмент командной строки, конвертирующий и копирующий файлы. Но его можно использовать для проведения простых I/O-тестов на СХД. Из коробки запускается практически на любой системе GNU/Linux.

На wiki-страничке приведена команда для оценки производительности диска при последовательной записи 1024-байтных блоков:

Также стоит отметить, что DD можно использовать в качестве простого CPU-бенчмарка. Правда, для этого понадобится дополнительная программа, требующая ресурсоемких вычислений. Например, утилита для расчета значений хеш-сумм md5sum.

Команда выше покажет, насколько быстро (Мбайт/с) система обработает длинную числовую последовательность. Хотя эксперты говорят, что эта команда подойдет лишь для грубой оценки производительности. Также важно помнить, что DD позволяет производить низкоуровневые операции на жёстких дисках. Поэтому работать с утилитой нужно осторожно, чтобы не потерять часть данных (название DD иногда в шутку расшифровывают, как disk destroyer).

О чем мы пишем в наших блогах и социальных сетях:

Исследование: Linux — все еще самая популярная ОС в облаке
В Open Invention Network больше трех тысяч лицензиатов — что это значит для открытого ПО

Как обезопасить Linux-систему: 10 советов
Минимизация рисков: как не потерять ваши данные

Книги для тех, кто уже занимается системным администрированием или только планирует начать
Необычные доменные зоны для вашего проекта

Источник

Оцените статью