Программы для стресс теста компьютера linux
Иногда возникает необходимость выполнить частичную или полную загрузку микропроцессора на персональном компьютере или сервере. Это может понадобиться для стресс-тест системы, для проверки стабильности работы, оценки эффективности системы охлаждения и измерения потребляемой компьютером или сервером мощности под нагрузкой.
В статье приведены конструкции из простых и всегда доступных консольных команд в GNU Linux, которыми можно нагрузить одно или все ядра процессора. Также рассмотрим компактный но очень мощный пакет для стресс-тестов под Линукс, который можно установить одной командой. Все подробно и с примерами!
Опытный пользователь операционной системы (ОС) GNU Linux не раз сталкивался со случаями когда простая команда с небольшой ошибкой могла загрузить микропроцессор под самую завязку. Этим мы и воспользуемся, только у нас будет все продумано и с конкретной целью.
Сперва рассмотри достаточно интересную связку из двух отдельных команд, соединенных через конвейер (символ "|", перенаправление ввода-вывода).
Ее суть: читаем случайные данные из файла "/dev/urandom" используя утилитку 'dd', через конвейер "|" перебрасываем эти считанные данные программе-архиватору "bzip2", указываем максимальный уровень сжатия (9) и выводим данный в "черную дыру", то есть в никуда - для этого есть специальный файл "/dev/null".
Таким образом, пока команда запущена (прервать ее можно нажав CTRL+C), архиватор будет сжимать непрерывный поток случайных данных и пересылать результат в вечно пустой файл. На физические диски и файловые системы ничего не пишется, а процессору есть немало работы.
Данная связка из команд загрузит два ядра CPU (Central Processor Unit) таким образом:
- "dd if/dev/urandom" - загрузит одно ядро примерно на 40%;
- "bzip2 -9" - загрузит второе ядро примерно на 70%.
Для чтобы загрузить дополнительные ядра микропроцессора нужно открыть дополнительные окна терминала и запустить несколько клонов данной команды.
Наблюдаем за нагрузкой отдельных ядер CPU
Для удобного наблюдения за нагрузкой на каждое из ядер микропроцессора можно использовать программу "System Monitor", которая входит в состав рабочего окружения KDE. Программа с похожим функционалом и таким же названием есть и в среде GNOME.
Рис. 1. Мониторим загрузку двух ядер CPU в GNU Linux используя System Monitor из KDE.
На рисунке результат загрузки двух ядер связкой из двух команд которая были рассмотрена выше. Одно ядро - оранжевй график (70%), другое ядро - желтый график (40%).
Для запуска этого консольного монитора ресурсов используем одноименную команду:
Ниже приведен пример работы этого консольного монитора ресурсов, загружены два ядра все той же связкой из команд dd и bzip2.
Рис. 2. Мониторинг нагрузки двух ядер CPU в GNU Linux используя HTOP.
Что же означают в HTOP красные и зеленые отметки в прогресс-барах для ядер CPU? - все проще простого:
- зеленый цвет - количество ресурсов процессора, выделенные под процессы с нормальным приоритетом;
- красный цвет - ресурсы CPU, выделяемые процессам с приоритетом ядра.
О том как узнать частоту установленного микропроцессора(ров), режимы работы ядер и другую полезную информацию я писал в одной их предыдущих статей о CPU в GNU Linux.
Утилизация 100% мощности одного или нескольких ядер CPU
Для этой цели можно использовать команды, которые обрабатывают непрерывный поток данных на очень высокой скорости, без периодических колебаний нагрузки как в случае с bzip.
Скажем микропроцессору "yes". только очень много раз!
С виду простая и безобидная команда, а нагрузит она одно ядро CPU примерно на 100% и без скачков. Суть этой конструкции проста: выводим слово "yes" бесконечное количество раз и перенаправляем вывод в "черную дыру" - /dev/null.
Рис. 3. Нагружаем одно ядро CPU на 100% командой yes в GNU Linux.
Другие связки из простых команд для загрузки ЦПУ
Пример с командой "yes" - это наиболее простой и доступный способ нагрузить одно или несколько ядер центрального процессора.
Кроме того, можно поэкспериментировать и с другими командами и программами, которые по умолчанию доступны почти в каждом дистрибутиве GNU Linux.
Суть построения подобных связок из команд следующая:
- Что-то откуда-то беспрерывно считываем и перенаправляем в /dev/null;
- Выполняем бесконечный анализ данных какой-то программой или утилитой.
Следующая связка позволяет загрузить одно ядро под самый потолок:
Рис. 4. Нагружаем одно ядро CPU по максимуму на 100% командой cat в GNU Linux.
Суть команды: при помощи команды "cat" выполняем вывод бесконечного потока дынных из псевдо-устройства "/dev/zero" (генерирует нули, 000) в пустоту "/dev/null";
Как видим процесс у нас выполняется с высоким приоритетом (приоритет ядра ОС) и требует для выполнения всю вычислительную мощность одного процессорного ядра.
Для считывания данных из файла псевдо-устройства можно использовать программу "dd".
Суть команды: с помощью программы "dd" (if - input file, of - output file) читаем поток случайных данных из /dev/urandom и отправляем их в "никуда" - /dev/null.
Результат мониторинга загрузки ядер в HTOP получим такой же как и на рисунке 4.
А теперь загрузим процессор подсчетом контрольной суммы бесконечного файла с нулями:
В htop мы сможем видеть то же то и на рисунке 3, правда плотность загрузки будет более стабильной.
Грузим CPU просчитывая MD5-сумму бесконечного потока случайных данных:
График загрузки будет идентичен тому что на рисунке 4, микропроцессор загружен процессом, который работает на уровне ядра ОС, очень высокий приоритет.
Грузим процессор на 100% используя pbzip2
В начале статьи был представлен пример с bzip2, которая поотдельности может нагрузит одно ядро микропроцессора. Существует также мультипоточная реализация данного архиватора - pbzip2.
Установить pbzip2 можно командой:
Для нагрузки всех доступных ресурсов процессора достаточно запустить следующую команду:
Вместо источника потока "/dev/zero" можно использовать "/dev/urandom" или же собрать еще более простую конструкцию:
Stress - пакет комплексных нагрузочных тестов ПК
О применении утилиты "stress" в GNU Linux я уже писал в статье о самостоятельном ремонте ПК. Там она использовалась в связке с другими программами для получения такого себе нагрузочного стресс-набора на подобии AIDA64 под Windows.
Этой программой можно нагрузить сразу все доступные ядра CPU или же указать конкретно сколько ядер должны трудиться в поте лица. Для установки пакета 'stress' достаточно выполнить команду:
Итак, запускаем программу с указанием загрузить 4 ядра микропроцессора:
Результаты производительности приведены ниже.
Рис. 5. Нагружаем все ядра CPU по максимуму на 100% командой stress в GNU Linux.
Рис. 6. Смотрим результат работы программы stress в htop.
В заключение
Как видим, нагрузить отдельное ядро процессора или же несколько ядер даже без установки специального программного обеспечения в GNU Linux - задача вполне реальная. Каждый может выбрать себе связку команд, которую легко запомнить и использовать. К тому же, строить подобные связки зная принцип их работы можно самостоятельно буквально на лету.
Но все же, установив небольшой программный пакет "stress" можно решить задачу комплексно и с дополнительными возможностями. Еще для нагрузки и тестов Linux системы можно использовать мощный комбайн "phoronix-test-suite", который придется ставить отдельно (в репозитории Debian его нет), но это уже другая история.
Тестирование компьютера позволяет определить его производительность и сравнить результаты с другими системами. Для Linux существует немало программ для оценки производительности процессора, оперативной памяти, накопителя и графической подсистемы.
Мы рассмотрим наиболее интересные программы для тестирования Linux. Особое внимание уделим тем программам, которые имеют онлайн-базы с результатами актуальных систем, ведь без этого крайне сложно интерпретировать полученные данные.
Программы для тестирования Linux
1. Phoronix Test Suite
Phoronix Test Suite – это один из самых популярных инструментов, позволяющих выполнить тест производительности Linux. В его состав входят не только собственные тесты, но и скрипты для запуска сотен сторонних тестов. Иными словами, для тестирования вам достаточно только этого пакета. С помощью этой программы можно выполнить тест производительности Linux для любого компонента системы, будь то память, диск или процессор.
К сожалению, утилита сильно перегружена и пользоваться ей довольно сложно. Работать с несколькими сотнями строк текста в терминале неудобно, а графический интерфейс для последней версии пакета так и не был написан. Частично поможет веб-интерфейс, с его помощью можно ознакомиться с тестами, но для их запуска придётся вернуться к терминалу.
В любом случае, этот пакет нельзя обходить стороной. Выбрав интерактивный режим, вы можете вывести список доступных тестов и запустить необходимые. Имеются тесты для всех узлов системы: процессора, памяти, графики, накопителя, сети и самой операционной системы. Установочный пакет можно скачать с официального сайта. А для получения более подробной информации о работе с Phoronix Test Suite можете обратиться к нашей статье.
2. Sysbench
Sysbench, как и предыдущий пакет тестов, позволяет оценить производительность Linux при использовании различных компонентов системы. Однако, основным тестом можно считать проверку работы в качестве базы данных. Обширной базы с результатами вы не найдёте, но на Openbenchmarking вы хотя бы примерно можете оценить производительность вашего сервера.
Для установки Sysbench воспользуйтесь командой:
sudo apt install sysbench
3. GeekBench
GeekBench – это один из самых популярных тестов производительности в мире компьютеров. Он был портирован не только на Linux и macOS, но ещё и на Android с iOS, так что имеется возможность сравнить производительность разных платформ. В состав приложения входит множество тестов. Надо понимать, что некоторые из них задействуют аппаратные блоки процессора, вроде того же AES-шифрования. В связи с этим уместно сравнивать результаты процессоров в одном поколении.
Что примечательно, хоть приложение и не имеет графической оболочки для Linux, результаты, как и на других платформах, отображаются на сайте. Там же вы можете сравнить результаты вашей системы со множеством других, в том числе на основе мобильных процессоров ARM. Имеется возможность сравнить системы напрямую, добавив их в список сравнения.
4. Hardinfo
Hardinfo – это не только набор тестов, но ещё и утилита для сбора информации о системе. К сожалению, её база данных на текущий момент уже устарела. Комплектующие последних лет могут отображаться некорректно или же вовсе пройти незамеченными.
Если говорить о тестах, то они предназначены для оценки различных блоков процессорных ядер, будь то целочисленные вычисления или с плавающей запятой. Для оценки производительности имеется небольшая база результатов, которая, как было сказано ранее, устарела. Вы можете сравнить свой процессор с Core i7 первого поколения и более ранними процессорами.
Для установки Hardinfo используйте команду:
sudo apt install hardinfo
5. Passmark PerformanceTest
sudo apt install libncurses5 libncurses5:i386
6. UnixBench
UnixBench – это неплохой комплексный пакет позволяющий оценить производительность Linux. Проверку проходит не только процессор, но ещё и оперативная память, а также сама операционная система. К сожалению, разработчики не стали собирать результаты в единую базу, поэтому сравнить производительность с другими компьютерами у вас едва ли получится. Также стоит предупредить о том, что по умолчанию тесты проводятся многократно, а полное тестирование занимает более получаса.
Для установки UnixBench используйте команду:
sudo snap install unixbench
7. Unigine (Heaven, Valley, Superposition)
Перейдём к программам для тестирования графической подсистемы. Тесты Unigine, на основе OpenGL и Vulkan, давно зарекомендовали себя не только на Windows, но и на Linux. Heaven и Valley подойдут для тестирования старых видеокарт и интегрированной графики, в основном ввиду своего почтенного возраста. Относительно свежий Superposition предъявляет серьёзные требования к системе. Этот тест можно использовать не только для оценки производительности, но ещё и в качестве продолжительной нагрузки для стресс-теста, но эта опция станет доступна после приобретения продвинутой версии теста.
8. GFXBench 4.0
GFXBench 4.0 – это кроссплатформенный тест на основе OpenGL, позволяющий выполнить тестирование Linux. Он рассчитан на запуск на относительно слабых смартфонах, поэтому на компьютере с ним справится даже самая простая видеокарта. По этой же причине тест не способен продемонстрировать все возможности графической системы. В пакет входит несколько тестовых сцен, а также тесты для проверки скорости текстурирования, вычислений и так далее.
9. hyperfine
10. IOzone
IOzone – это тест дисковой подсистемы. Он проверяет скорость записи и чтения накопителя с разным размером блоков. Результат можно сохранить в виде таблицы, но на его анализ потребуется время. На сайте разработчика всё выглядит красиво, нам демонстрируют красивые графики. На деле же вы получите только кучу чисел, с которыми вам ещё предстоит что-то сделать.
Для установки IOzone используйте команду:
sudo apt install iozone3
11. Bonnie++
Bonnie++ – это ещё один тест дисковой системы Linux. В этот раз результаты выводятся в более понятном виде. Но и тут не обошлось без проблем. Он категорически не подходит для тестирования накопителей SSD. Если один из тестов прошёл слишком быстро, то вместо результата вы увидите +++. С жёсткими дисками эта особенность тоже прослеживается, но не так явно.
Иными словами, Bonnie++ подходит для тестирования старых систем с медленными жёсткими дисками. Помимо скоростных показателей, вы получите значения задержек и загрузки процессора. Для установки Bonnie++ используйте команду:
sudo apt install bonnie++
12. KDiskMark
Многие пользователи Windows привыкли использовать CrystalDiskMark для определения скоростных показателей накопителя. К счастью, для Linux есть аналогичная программа под названием KDiskMark. Она практически полностью повторяет функциональность именитого собрата.
Вы можете настраивать очередь и количество потоков у каждого из четырёх тестов. Также имеется возможность выбрать объём задачи. Результаты отображаются аналогичным с CrystalDiskMark образом. При желании вы можете навести курсор на значение и увидеть подробную информацию, количество операций в секунду (IOPS) и задержку в микросекундах.
Программа доступна в виде Snap-пакета:
sudo snap install kdiskmark
Но лучше перейти на страницу GitHub, чтобы получить последнюю версию KDiskMark. Разработчиком выступает наш соотечественник, так что решить возникшие проблемы будет совсем несложно.
13. Linpack Xtreme
Закончим нашу подборку популярным тестом. Linpack Xtreme способен создать серьёзную нагрузку на центральный процессор, при этом оперативная память также не будет простаивать. С помощью этого теста вы можете выполнить стресс тест Linux и проверить стабильность системы после комплексного разгона процессора и оперативной памяти. Результаты отображаются в привычных единицах измерения – Gflops, используемых для оценки производительности суперкомпьютеров.
Выводы
В общем случае вам достаточно установить Phoronix Test Suite, через него доступен запуск практически любого теста на Linux. Но, помимо этого, мы рассмотрели ещё и наиболее интересные программы для тестирования в среде Linux.
К сожалению, как вы могли заметить, большая часть тестов не имеет графического интерфейса, так что в этом плане Linux проигрывает Windows. Но оценить производительность компьютера всё-таки получится. Советуем выбрать GeekBench, Passmark PerfomanceTest, Unigine и GFXBench. Все эти программы позволяют сравнить производительность вашего компьютера с другими, так как на их сайтах вы можете найти обширные базы с результатами.
Также стоит отметить тот факт, что мы не стали рассматривать узкоспециализированные тесты для решения определённой задачи: архивация, декодирование, компиляция и так далее. А какими программами для тестирования компьютера пользуетесь вы? Делитесь своим мнением в комментариях.
Прогнал я тест 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:
Для AMD процессоров такой вариант я бы не стал пробовать, так как компилятор от Intel вставляет закладки, проверяющие процессор и если он не Intel. ну, подумаешь сотню-другую лишних инструкций процессор выполнит и заведомо проиграет в производительности. Для AMD лучше собрать Linpack из исходников, например, из этих. В данной статье сборку из исходников рассматривать не буду - читайте README в source code.
Вернёмся к Intel-овскому Linpack-у. Там много чего лишнего и мне не нужного, а то, что нужно рассмотрю относительно версии 2018.3.011. Сразу же перейду в нужную директорию, чтоб потом не набирать длинные команды:
Так как по умолчанию Intel-овский Linpack заточен под тестирование серверных Xeon-ов, создадим свой файл, который будет использоваться в качестве входных опций - просто уменьшим количество тестов, иначе устанем "пару-тройку дней" ждать завершения теста. У меня Linux Mint LMDE 3, поэтому я использую текстовый редактор xed, да и нравится он мне бОльшим функционалом, особенно, когда из-под root-а его запускать - он цвет на красный меняет. И так, создаём в этой же директории, в которую перешли, файл, например, my_test:
И в созданный файл копируем следующее содержимое:
Ну, и собственно запуск Linpack с созданным файлом:
./xlinpack_xeon64 -i ./my_test
Можно ещё заюзать stress-ng или stress, но поставленной мной задачи это всё-равно не решает. Вывода температуры, частот и времени от начала старта эти утилиты мне не показывают.
Температуру может показать sensors - подробнее про установку этой утилиты здесь. И эта утилита понадобится в дальнейшем рассмотрении моего вопроса. Линукс - велик и могуч: одна и та же задача может решаться по-разному. За Си мне лень было браться и я написал недостающую мне часть на BASH, ибо строк получилось не так уж и много. Без установленной sensors мой скрипт работать не будет. Фиксацию троттлинга естесственно не стал писать - его и так будет видно по сбросу частоты и температуре. Вот сам скрипт:
Сильно не ругайте за скидывание управляющих символов в stderr (1>&2), но это дело привычки, если вдруг потом вывод скрипта в файл отправлять, а там все эти ESC-апе последовательности точно не нужны, вот так и будет терминал цветным, а файл чистым. Что-то я отвлёкся.
Я создал файл 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:
В общем: поставленную для себя задачу я решил и даже лучше - появилась целая надстройка над тестовыми утилитами. Осталось ноутбук разобрать и поменять таки термопасту с прокладками: как вспомню - аж страшно становится.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Пользователи редко задумываются о конфигурации и производительности используемого ими персонального компьютера. Обычно интерес к этой теме возникает в том случае, если пользователь увлечён сферой информационных технологий или если его не устраивает текущая производительность системы.
Однако, этот вопрос весьма важен, особенно если рабочая станция — ваше устройство, используемое для развлечений, отдыха и работы. В этой статье мы разберемся как выполнить тест производительности Linux и рассмотрим один из инструментов тестирования производительности — Phoronix Test Suite.
Что такое Phoronix Test Suite?
С помощью Phoronix Test Suite вы можете найти узкое место в своей конфигурации компьютера, сравнить вашу систему с аналогичными системами других пользователей, оценить общую производительность или производительность конкретных узлов ПК. Для всех этих целей пакет предлагает широкий выбор тестов, разделённый на несколько категорий:
- System — тесты общей производительности системы.
- Processor — тесты производительности процессора.
- Memory — тесты производительности оперативной памяти.
- Graphics — тестирование производительности видеокарты.
- Disk — тесты производительности дисковой подсистемы.
Рассмотрим каждую категорию отдельно, составив список интересных бенчмарков.
Доступные тесты производительности
Тесты общей производительности системы (System):
- PyBench — тест, вызывающий различные функции, реализованные с использованием Python. Позволяет оценить общую производительность системы Linux.
- Blender — тест на основе программного обеспечения с открытым исходным кодом для создания 3D-сцен и 3D-моделей.
- BRL-CAD — бенчмарк на базе кросс-платформенного программного обеспечения для твердотельного моделирования.
- IndigoBench — тест на основе Indigo Renderer (фотореалистичного рендера для GPU и CPU, применяющего методики точного моделирования физики света).
- LuxMark — мультиплатформенный тест OpenGL, основанный на LuxRender. Использует библиотеку OpenCL, содержит несколько различных сцен для рендеринга. LuxRender — система рендеринга для Blender и 3DS Max.
- Ethminer — бенчмарк на основе Ethereum Ethminer (Майнер GPU для различных монет, основанных на алгоритме Ethash).
- V-Ray — бенчмарк на основе рендера V-Ray от Chaos Group.
Тесты производительности процессора (Processor):
Тесты производительности памяти (Memory):
- RAMspeed — тест памяти Linux, измеряющий производительность оперативной памяти.
- SQLite — тест оперативной памяти, измеряющий время, необходимое для выполнения вставки данных в индексированную базу данных.
Тесты производительности дисковой подсистемы (Disk):
- Iozone — тестирует производительность жёсткого диска linux, а также файловой системы.
Тесты производительности видеокарты (Graphics):
- UNIGINE-Heaven — бенчмарк, вычисляющий среднюю частоту кадров в демо UNIGINE Heaven. Данное демо было выпущено в 2009 году.
- UNIGINE-Valley — тест видеокарты linux, вычисляющий среднюю частоту кадров в демо UNIGINE Valley. Исходное ПО было выпущено в 2013 году и использует OpenGL 3.
- UNIGINE-Superposition — тест видеокарты на основе демо UNIGINE Superposition, вышедшего в 2017 году. Исходный тест содержит режим для виртуальной реальности.
- UE4-Atlantis — тест на основе демо на движке Unreal Engine 4. Тест вышел в 2015 году.
Тест производительности Linux
1. Установка Phoronix Test Suite
Далее предлагаем последовательность установки для операционной системы Ubuntu.
Открываем командный интерпретатор bash и выполняем следующие команды:
sudo apt install gdebi-core
Пакет, позволяющий устанавливать программное обеспечение из пакетов *.deb, установлен. Затем устанавливаем скачанную нами версию тестового программного обеспечения:
sudo gdebi phoronix-test-suite_9.4.0_all.deb
Данную команду надо выполнять из папки, в которой находится скачанный дистрибутив Phoronix Test Suite.
2. Подключение учётной записи
Вводим свой логин и пароль.
На этом установка Phoronix Test Suite завершена.
3. Просмотр доступных бенчмарков
Посмотреть доступные бенчмарки можно с помощью команды:
sudo phoronix-test-suite list-all-tests
Просмотреть установленные тесты можно с помощью команды:
sudo phoronix-test-suite list-installed-tests
Просмотреть неустановленные тесты можно с помощью команды:
sudo phoronix-test-suite list-not-installed-tests
4. Установка тестов
Устанавливаются нужные вам тесты с помощью команды:
sudo phoronix-test-suite install [ имя теста ]
sudo phoronix-test-suite install build-gcc
В случае некорректной установки выбранного бенчмарка можно использовать для удаления теста команду:
sudo phoronix-test-suite remove-installed-test [ имя теста ]
sudo phoronix-test-suite remove-installed-test build-gcc
Для того, чтобы выявить ошибки в процессе установки, необходимо воспользоваться командой:
sudo ph oronix-test-suite debug-install [ имя теста ]
sudo phoronix-test-suite debug-install build-gcc
5. Запуск тестов
Запуск чтобы запустить конкретный тест производительности linux из состава пакета выполните:
sudo phoronix-test-suite run [ имя теста ]
sudo phoronix-test-suite run pybench
Результат в браузере выглядит следующим образом
Запуск нескольких тестов одновременно производится командой:
sudo phoronix-test-suite run [ имя теста ] [ имя теста ] [ имя теста ] … [ имя теста ]
sudo phoronix-test-suite run scimark2 pybench
Запуск теста с отслеживанием ошибок производится командой:
sudo phoronix-test-suite debug-run [ имя теста ]
sudo phoronix-test-suite debug-run scimark2
6. Просмотр результатов тестов
Отобразить на экране список сохранённых результатов тестов Linux можно с помощью команды:
sudo phoronix-test-suite list-saved-results
Просмотреть конкретный результат можно с помощью команды:
sudo phoronix-test-suite show-result [ saved name ]
sudo phoronix-test-suite show-result 2002279-FIRE-TEST26009
Удалить результат можно с помощью команды:
sudo phoronix-test-suite remove-result [ saved name ]
sudo phoronix-test-suite remove-result 2002279-FIRE-TEST26009
Переименовать файл, содержащий результаты, можно следующей командой:
sudo phoronix-test-suite rename-result-file [ saved name ]
sudo phoronix-test-suite rename-result-file test-26-02-2020-02
Команда запрашивает новое имя файла:
Сохранить результаты в формате pdf можно с помощью команды:
sudo phoronix-test-suite result-file-to-pdf [ saved name ]
Объединить результаты из разных файлов в один можно с помощью команды:
sudo phoronix-test-suite merge-results [ saved name ] [ saved name ] … [ saved name ]
При этом имя для объединённого результата программа выбирает сама, отдельные старые результаты тоже сохраняются.
Внимание! При выполнении этой команды ссылка для просмотра результата в браузере у меня получалась нерабочей, но в дальнейшем результат было можно просмотреть с помощью команды
sudo phoronix-test-suite show-result [ saved name ].
Вставка результата в базу сайта производится следующим образом:
sudo phoronix-test-suite upload-result [ saved name ]
Загрузить конкретный результат текущего пользователя с сайта на ПК можно с помощью команды:
sudo phoronix-test-suite clone-result [ OpenBenchmarking ID test ]
sudo phoronix-test-suite clone-result 2002279-FIRE-TEST26009
Посмотреть загруженные с данного IP на сайт результаты тестов можно с помощью команды:
sudo phoronix-test-suite openbenchmarking-uploads
Для того, чтобы сформировать выборку тестов, необходимо установить флажки с названием файлов результатов и нажать на ссылку Compare Selected Results.
Результат сформированной выборки будет выглядеть так:
8. Настройка сетевого доступа для тестов
Следующая команда показывает параметры сетевых настроек для пакета:
sudo phoronix-test-suite network-info
Настроить параметры прокси-сервера для доступа к базам тестов в Интернет можно с помощью команды:
sudo phoronix-test-suite network-setup
9. Сервер тестирования компьютеров в локальной сети
Кроме того, пакет Phoronix Test Suite содержит сервер удалённого тестирования Phoromatic, с помощью которого можно организовать централизованное тестирование и хранение результатов тестов в локальной сети. Подробное рассмотрение данного сервера выходит за рамки нашей статьи.
Выводы
В статье мы рассмотрели как оценить производительность Linux и как пользоваться Phoronix Test Suite. Этот пакет содержит огромный выбор тестов на любой вкус. Нами порекомендованы некоторые из них для всестороннего тестирования персонального компьютера. Также были рассмотрены особенности работы с программой в командной оболочке. Было уделено внимание выгрузке результатов на сайт, комбинированию и просмотру результатов.
Теперь вы тоже можете присоединиться к сообществу тестеров Phoronix Test Suite. Делитесь своими результатами тестов в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Бенчмарк — это измерение максимальной производительности компьютера, которое выражают в условных очках. Благодаря этому можно сравнить производительность разных компьютеров, либо одного и того же компьютера после, например, разгона или андерволтинга.
Бенчмарк и стресс-тест это не одно и то же. И при бенчмарке и при стресс-тесте система получает полную нагрузку. Но главная цель бенчмаркинга это оценка производительности, а главная цель стресс-теста это проверка, сможет ли система функционировать на пределе своей загруженности, либо определить этот предел. Хотя, на самом деле, некоторые программы совмещают в себе обе функции.
Бенчмарк может выполняться дли системы в целом, либо для отдельных её составляющих: для центрального процессора, видеокарты, системы ввода-вывода.
В Линукс имеется несколько программ для оценки производительности центрального процессора, например: sysbench, stress-ng и phoronix-test-suite. Из них stress-ng в первую очередь выполняет функции стресс-теста, но она выводит получаемые метрики, поэтому вполне пригодна для оценки и сравнения производительности системы.
Бенчмарк в sysbench
sysbench — это утилита командной строки. Она создана для оценки производительности серверов с сильно нагруженными СУБД, но подходит и для проведения бенчмарков обычных систем.
Установка в Ubuntu, Linux Mint, Debian, Kali Linux:
Встроенные в программу тесты:
- fileio — Тестирование файлового ввода/вывода
- cpu — Тестирование производительности CPU
- memory — Тестирование скорости функций памяти
- threads — Тестирование производительности подсистемы потоков
- mutex — тест производительности Mutex
Для запуска теста производительности центрального процессора:
Обратите внимание как запускается программа: в начале идёт название теста, затем опции (в первом примере их нет), а затем команда.
Для программы установлено два придела выполнения:
- 10000 операций с числами
- 10 секунд выполнения
В зависимости от того, что наступит первым, программа завершит свою работу или после 10000 событий, либо после 10 секунд.
Современные процессоры очень производительные и если программа завершилась очень быстро, то данные могут быть искажены. Например, при оценки производительности процессора играет роль, к примеру, троттлинг (сброс частот). Троттлинг начинается из-за перегрева или превышения TDP. Эти эффекты наблюдаются только на длительных дистанциях работы процессора. Если, к примеру, тест завершился за секунду и вы получили n обработанных операций, это не означает, что процессор за 60 секунд выполнит 60 * n операций, поскольку он будет сбрасывать частоты из-за перегрева и выхода за пределы установленного в TDP рассеивания тепла.
Для более длительного выполнения теста используются опции --cpu-max-prime и --time. Первая устанавливает максимальное количество выполненных операций, а вторая — максимальное время проведения бенчмарка. При одновременном использовании опций приоритет имеет --time.
Современные центральные процессоры являются многоядерными и многопотоковыми:
По умолчанию sysbench запускает в один поток. Поэтому если вы хотите задействовать все ядра вашего процессора, используйте опцию --threads. У меня 6 физических и 12 логических ядер центрального процессора, поэтому я буду использовать значение 12, чтобы работали все процессоры.
При использовании опции --cpu-max-prime, чем меньше время завершения программы, тем производительныее центральный процессор:
Программа завершила работу слишком быстро — за 10 секунд вряд ли процессор успел подвергнуться серьёзному троттлингу. Поэтому с такими значениями тест подходит для оценки пиковой производительности на короткой дистанции.
CPU speed events per second означает количество выполненный в центральном процессоре операций за секунду — чем выше значение, тем производительнее система.
General statistics total time означает общее время выполнения операций.
General statistics total number of events означает общее количество выполненный событий.
Если система завершает работу слишком быстро, можно увеличить значение, например, до двухсот тысяч событий:
Ещё один способ проверки троттлинга и оценки производительности процессора под длительной нагрузкой, это установка времени выполнении, в примере ниже установлено время в 300 секунд.
У меня при использовании опций --time и --cpu-max-prime CPU speed events per second различается в десятки раз — видимо или какой-то баг в программе, либо программа считает по каким-то другим правилам.
Бенчмарк в phoronix-test-suite
Запустите – в первый раз нужно будет принять лицензионное соглашение, так программа спросит разрешение на отправку анонимной статистики:
Предыдущая команда выведит список доступных бенчмарков.
Доступные наборы в версии Phoronix Test Suite v8.0.1
Звёздочкой отмечены частично поддерживаемые наборы.
Для запуска оценки производительности центрального процессора выполните:
Обратите внимание, что pts/cpu и другие бенчмарки занимают несколько гигабайт дискового пространства. К примеру, pts/cpu загрузит около 3 Гб данных и будет использовать примерно 7 Гб дискового пространства (в домашней директории пользователя).
О том, как контролировать текущую частоту и температуру процессора в Linux смотрите здесь.
Читайте также: