Open
Close

Программы для тестирования Linux. Тестирование оборудования в Linux Скриншоты программы LinX

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

В статье приведены конструкции из простых и всегда доступных консольных команд в GNU Linux, которыми можно нагрузить одно или все ядра процессора. Также рассмотрим компактный но очень мощный пакет для стресс-тестов под Линукс, который можно установить одной командой. Все подробно и с примерами!

Утилизация мощности двух ядер CPU (40%+70%)

Опытный пользователь операционной системы (ОС) GNU Linux не раз сталкивался со случаями когда простая команда с небольшой ошибкой могла загрузить микропроцессор под самую завязку. Этим мы и воспользуемся, только у нас будет все продумано и с конкретной целью.

Сперва рассмотри достаточно интересную связку из двух отдельных команд, соединенных через конвейер (символ "|", перенаправление ввода-вывода).

Dd if=/dev/urandom | bzip2 -9 > /dev/null

Ее суть: читаем случайные данные из файла "/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%).

С такой же задачей, только в консоли, отлично справляется утилита "htop", которая должна быть знакома почти каждому системному администратору. Если у вас она не установлена то исправить ситуацию можно командой:

Sudo apt-get install htop

Для запуска этого консольного монитора ресурсов используем одноименную команду:

Ниже приведен пример работы этого консольного монитора ресурсов, загружены два ядра все той же связкой из команд dd и bzip2.

Рис. 2. Мониторинг нагрузки двух ядер CPU в GNU Linux используя HTOP.

Что же означают в HTOP красные и зеленые отметки в прогресс-барах для ядер CPU? - все проще простого:

  • зеленый цвет - количество ресурсов процессора, выделенные под процессы с нормальным приоритетом;
  • красный цвет - ресурсы CPU, выделяемые процессам с приоритетом ядра.

О том как узнать частоту установленного микропроцессора(ров), режимы работы ядер и другую полезную информацию я писал в одной их предыдущих статей о CPU в GNU Linux .

Утилизация 100% мощности одного или нескольких ядер CPU

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

Скажем микропроцессору "yes"...только очень много раз!

Yes > /dev/null

С виду простая и безобидная команда, а нагрузит она одно ядро CPU примерно на 100% и без скачков. Суть этой конструкции проста: выводим слово "yes" бесконечное количество раз и перенаправляем вывод в "черную дыру" - /dev/null.

Рис. 3. Нагружаем одно ядро CPU на 100% командой yes в GNU Linux.

Другие связки из простых команд для загрузки ЦПУ

Пример с командой "yes" - это наиболее простой и доступный способ нагрузить одно или несколько ядер центрального процессора.

Кроме того, можно поэкспериментировать и с другими командами и программами, которые по умолчанию доступны почти в каждом дистрибутиве GNU Linux.

Суть построения подобных связок из команд следующая:

  1. Что-то откуда-то беспрерывно считываем и перенаправляем в /dev/null;
  2. Выполняем бесконечный анализ данных какой-то программой или утилитой.

Следующая связка позволяет загрузить одно ядро под самый потолок:

Cat /dev/zero > /dev/null

Рис. 4. Нагружаем одно ядро CPU по максимуму на 100% командой cat в GNU Linux.

Суть команды: при помощи команды "cat" выполняем вывод бесконечного потока дынных из псевдо-устройства "/dev/zero" (генерирует нули, 000) в пустоту "/dev/null";

Как видим процесс у нас выполняется с высоким приоритетом (приоритет ядра ОС) и требует для выполнения всю вычислительную мощность одного процессорного ядра.

Для считывания данных из файла псевдо-устройства можно использовать программу "dd".

Dd if=/dev/urandom of=/dev/null

Суть команды: с помощью программы "dd" (if - input file, of - output file) читаем поток случайных данных из /dev/urandom и отправляем их в "никуда" - /dev/null.

Результат мониторинга загрузки ядер в HTOP получим такой же как и на рисунке 4.

А теперь загрузим процессор подсчетом контрольной суммы бесконечного файла с нулями:

Sha1sum /dev/zero

В htop мы сможем видеть то же то и на рисунке 3, правда плотность загрузки будет более стабильной.

Грузим CPU просчитывая MD5-сумму бесконечного потока случайных данных:

Md5sum /dev/urandom

График загрузки будет идентичен тому что на рисунке 4, микропроцессор загружен процессом, который работает на уровне ядра ОС, очень высокий приоритет.

Грузим процессор на 100% используя pbzip2

В начале статьи был представлен пример с bzip2, которая поотдельности может нагрузит одно ядро микропроцессора. Существует также мультипоточная реализация данного архиватора - pbzip2.

Установить pbzip2 можно командой:

Apt-get install pbzip2

Для нагрузки всех доступных ресурсов процессора достаточно запустить следующую команду:

Cat /dev/zero | pbzip2 -c > /dev/null

Вместо источника потока "/dev/zero" можно использовать "/dev/urandom" или же собрать еще более простую конструкцию:

Yes | pbzip2 -c > /dev/null

Stress - пакет комплексных нагрузочных тестов ПК

О применении утилиты "stress" в GNU Linux я уже писал в статье о самостоятельном ремонте ПК . Там она использовалась в связке с другими программами для получения такого себе нагрузочного стресс-набора на подобии AIDA64 под Windows.

Этой программой можно нагрузить сразу все доступные ядра CPU или же указать конкретно сколько ядер должны трудиться в поте лица. Для установки пакета "stress" достаточно выполнить команду:

Sudo apt-get install stress

Итак, запускаем программу с указанием загрузить 4 ядра микропроцессора:

Stress --cpu 4

Результаты производительности приведены ниже.

Рис. 5. Нагружаем все ядра CPU по максимуму на 100% командой stress в GNU Linux.

Рис. 6. Смотрим результат работы программы stress в htop.

В заключение

Как видим, нагрузить отдельное ядро процессора или же несколько ядер без установки специального программного обеспечения в GNU Linux - задача достаточно простая. Каждый может выбрать себе связку команд, которую легко запомнить и использовать, к тому же зная принцип работы строить подобные связки самостоятельно можно буквально на лету.

Тем не менее, установив программу "stress" можно решить задачу комплексно и с дополнительными возможностями. Также для нагрузки и тестов можно использовать такой пакет программ как "phoronix-test-suite", но это уже отдельная история...

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

Бенчмарк и стресс-тест это не одно и то же. И при бенчмарке и при стресс-тесте система получает полную нагрузку. Но главная цель бенчмаркинга это оценка производительности, а главная цель стресс-теста это проверка, сможет ли система функционировать на пределе своей загруженности, либо определить этот предел. Хотя, на самом деле, некоторые программы совмещают в себе обе функции.

Бенчмарк может выполняться дли системы в целом, либо для отдельных её составляющих: для центрального процессора, видеокарты, системы ввода-вывода.

В Линукс имеется несколько программ для оценки производительности центрального процессора, например: sysbench , stress-ng и phoronix-test-suite . Из них stress-ng в первую очередь выполняет функции стресс-теста, но она выводит получаемые метрики, поэтому вполне пригодна для оценки и сравнения производительности системы.

Бенчмарк в sysbench

sysbench — это утилита командной строки. Она создана для оценки производительности серверов с сильно нагруженными СУБД, но подходит и для проведения бенчмарков обычных систем.

Установка в Ubuntu, Linux Mint, Debian, Kali Linux:

Sudo apt install sysbench

Встроенные в программу тесты:

  • fileio — Тестирование файлового ввода/вывода
  • cpu — Тестирование производительности CPU
  • memory — Тестирование скорости функций памяти
  • threads — Тестирование производительности подсистемы потоков
  • mutex — тест производительности Mutex

Для запуска теста производительности центрального процессора:

Sysbench cpu run

Обратите внимание как запускается программа: в начале идёт название теста, затем опции (в первом примере их нет), а затем команда.

Для программы установлено два придела выполнения:

  • 10000 операций с числами
  • 10 секунд выполнения

В зависимости от того, что наступит первым, программа завершит свою работу или после 10000 событий, либо после 10 секунд.

Современные процессоры очень производительные и если программа завершилась очень быстро, то данные могут быть искажены. Например, при оценки производительности процессора играет роль, к примеру, троттлинг (сброс частот). Троттлинг начинается из-за перегрева или превышения TDP. Эти эффекты наблюдаются только на длительных дистанциях работы процессора. Если, к примеру, тест завершился за секунду и вы получили n обработанных операций, это не означает, что процессор за 60 секунд выполнит 60 * n операций, поскольку он будет сбрасывать частоты из-за перегрева и выхода за пределы установленного в TDP рассеивания тепла.

Для более длительного выполнения теста используются опции –cpu-max-prime и –time . Первая устанавливает максимальное количество выполненных операций, а вторая — максимальное время проведения бенчмарка. При одновременном использовании опций приоритет имеет –time .

Современные центральные процессоры являются многоядерными и многопотоковыми:

По умолчанию sysbench запускает в один поток. Поэтому если вы хотите задействовать все ядра вашего процессора, используйте опцию –threads . У меня 6 физических и 12 логических ядер центрального процессора, поэтому я буду использовать значение 12, чтобы работали все процессоры.

При использовании опции –cpu-max-prime , чем меньше время завершения программы, тем производительныее центральный процессор:

Sysbench cpu --threads=12 --cpu-max-prime=100000 run

Программа завершила работу слишком быстро — за 10 секунд вряд ли процессор успел подвергнуться серьёзному троттлингу. Поэтому с такими значениями тест подходит для оценки пиковой производительности на короткой дистанции.

Получены результаты:

CPU speed: events per second: 538.23 General statistics: total time: 10.0188s total number of events: 5393 Latency (ms): min: 19.85 avg: 22.27 max: 30.56 95th percentile: 23.10 sum: 120125.61 Threads fairness: events (avg/stddev): 449.4167/4.11 execution time (avg/stddev): 10.0105/0.01

CPU speed events per second означает количество выполненный в центральном процессоре операций за секунду — чем выше значение, тем производительнее система.

General statistics total time означает общее время выполнения операций.

General statistics total number of events означает общее количество выполненный событий.

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

Sysbench cpu --cpu-max-prime=200000 run

Ещё один способ проверки троттлинга и оценки производительности процессора под длительной нагрузкой, это установка времени выполнении, в примере ниже установлено время в 300 секунд.

Sysbench cpu --threads=12 --time=300 run

У меня при использовании опций –time и –cpu-max-prime CPU speed events per second различается в десятки раз — видимо или какой-то баг в программе, либо программа считает по каким-то другим правилам.

Бенчмарк в phoronix-test-suite

Установите программу:

Sudo apt install phoronix-test-suite

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

Phoronix-test-suite list-available-suites

Предыдущая команда выведит список доступных бенчмарков.

Доступные наборы в версии Phoronix Test Suite v8.0.1

Pts/audio-encoding - Audio Encoding System pts/chess - Chess Test Suite Processor pts/compilation - Timed Code Compilation Processor pts/compiler - Compiler Processor pts/compression - Timed File Compression Processor pts/computational - Computational Test Suite System pts/computational-biology - Computational Biology Test Suite Processor pts/cpu - CPU / Processor Suite Processor pts/cryptography - Cryptography Processor pts/daily-kernel-tracker - Daily Kernel Tracker System pts/daily-system-tracker - Daily System Tracker System pts/database - Database Test Suite System pts/desktop-graphics - Desktop Graphics System pts/disk - Disk Test Suite Disk pts/encoding - Encoding System pts/favorites - Favorites System * pts/gaming - Gaming System pts/gaming-closed - Closed-Source Gaming System * pts/gaming-free - Free Software Gaming System pts/gui-toolkits - GUI Toolkits Graphics pts/ioquake3-games - Games Using The ioquake3 Engine System pts/iqc - Image Quality Comparison Suite Graphics pts/java - Java System pts/java-opengl - Java OpenGL System pts/kernel - Kernel System pts/linux-system - Linux System System pts/machine-learning - Machine Learning System pts/memory - Memory Test Suite Memory pts/mesa - Mesa Test Suite Graphics pts/motherboard - Motherboard System pts/multicore - Multi-Core Processor pts/netbook - Netbook Test Suite System pts/network - Networking Test Suite Network pts/nevada - OpenSolaris Nevada Test Suite System pts/opencl - OpenCL System pts/opengl-demos - OpenGL Demos Test Suite System pts/opengl-workstation - OpenGL Workstation Test Suite System pts/pts-desktop-live - PTS Desktop Live System pts/ray-tracing - Ray-Tracing Test Suite System pts/server - Server Motherboard System pts/ue4 - Unreal Engine 4 Tech Demos On Linux Graphics pts/unigine - Unigine Test Suite Graphics * pts/universe - Universe Test Suite System pts/universe-cli - Universe CLI Test Suite System * pts/universe-x - Universe X Test Suite System pts/video-encoding - Video Encoding System pts/workstation - Workstation System pts/workstation-graphics - Workstation Graphics Graphics pts/xrender - X Render Extension Testing Graphics system/collection - Collection System

Звёздочкой отмечены частично поддерживаемые наборы.

Для запуска оценки производительности центрального процессора выполните:

Phoronix-test-suite run pts/cpu

Обратите внимание, что pts/cpu и другие бенчмарки занимают несколько гигабайт дискового пространства. К примеру, pts/cpu загрузит около 3 Гб данных и будет использовать примерно 7 Гб дискового пространства (в домашней директории пользователя).

О том, как контролировать текущую частоту и температуру процессора в Linux смотрите .

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

Главное окно Linx

Возможности программы:


Как пользоваться Linx для тестирования стабильности разгона

  • Запускаем программу, в настройках устанавливаем необходимое число потоков и 32\64 битный режим. Проверяем, что установлена галочка — стоп при ошибке.
  • Опционально — подключаем Everest (ныне Aida64) или Speedfan, устанавливаем предельную температуру.
  • В основном окне программы выбираем всю доступную оперативную память
  • Запускаем 1 тестовый прогон, исходя из времени, за которое он прошел, выставляем количество повторений таким, чтобы тест длился не менее часа.
  • Запускаем тест с повторениями, мониторим температуру и ждем.
  • Если тест не пройден — проверяем предельную температуру, напряжение и другие параметры, подбираем более подходящие и повторяем тестирование.

Чтоб нормально протестировать систему охлаждения процессора и стабильность работы в разгоне, когда для достижения высоких частот приходиться поднимать еще и напряжение, нужно под завязку загрузить его под завязку на довольно продолжительное время. В этом помогут только специальные утилиты, которые умеют, загрузят процессор по завязку, сложными, но бессмысленными вычислениями. Тут главное взять «правильную» программу, чтоб она эффективно работала, используя сложные формулы с плавающей запятой для обработки большого объема данных. Пожалуй, одну из лучших утилит создали Intel, которая называется Linpack. Правда, делали её программисты для продвинутых пользователей, не заморачиваясь над окнами с рюшами, ограничившись командной строкой. Черный экран с непонятными бегущими строками вгоняет обычных пользователей компьютера в ступор, которые не понимают, что с эти делать и куда щелкать мышью. Славу богу нашлись добрые люди, которые прикрутили к Linpack графическую оболочку, назвав свое творение LinX .

LinX не придется инсталлировать, а нужно будет скачать архивный файл, распаковать его, зайти в созданную папку и запустить исполняемый файл LinX.exe. Для удаления программы достаточно будет удалить папку, куда скинули файлы LinX, главное не забудьте, как она называется и где находиться.

О том, что за созданием тестов стоят Intel не стоит беспокоиться об эффективности работы с процессорами AMD, LinX отлично нагружает процессоры как Intel и AMD.

После запуска LinX, программа фактически готова к работе для этого достаточно нажать кнопку «Старт» вверху с правой стороны. Дальше набираемся терпения и ждем, пока пройдет заданное количество тестов по кругу. При завершении каждого цикла тестов в таблицу, будут добавляться его результаты, а именно потраченное время, скорость обработки данных, количество использованных потоков и размер матрицы системы линейных уравнений, который был использован для расчетов. За раз, нагружая процессор по максимуму, позволяя проверить его на стабильность работы и эффективность отвода тепла системой охлаждения.

Чтоб остановить прогон тестов, достаточно нажать «топ».

В главном окне в верхнее строке под основным меню есть разделы, где пользователи могут изменить:

  • «Объем задачи:», указать размер матрицы системы линейных уравнений, которая будет использована для расчетов. Чем больше, тем дольше идут вычисления. Обратите внимание, этот параметр связан с «Памятью», то есть при изменении одного из них будет автоматически меняться другой.
  • «Память (Миб)», объем оперативной памяти, которую программа может использовать программа. Как уже говорилось выше при увеличении объема, автоматически будет меняться «Объем задачи:», так же и наоборот.
  • «Выполнять» сколько прогонов тестов будет сделано по кругу.

Из интересных возможностей программы стоить отметить поддержку получение данных о температуре процессора, частот ядер и напряжения питания из приложений Everest / Speedfan и выводить их в виде графи во время тестов. Плюс разрешить останавливать тесты при возникновении ошибок или если процессор нагреться выше заданного значения (только при работе в паре Everest / Speedfan). Так же в настройках можно задать количество потоков, которое одновременно будет выполняться, выбрать разрядность тестов 32 или 64-х битных, приоритет процессов тестирования (лучше оставить по умолчанию, чтоб компьютер не тормозил), и ограничить объем используемой памяти программы, чтоб операционная система не тормозила.

На сегодняшний день LinX, а если быть совсем точными, то Linpack если откинуть графическую оболочку, единственный тест который позволяет наиболее адекватно проверить стабильность работы процессора. Учтите, это программа создает на процессор очень высокие нагрузки, под которыми в домашних условиях он никогда работать не будет, и не желательно постоянно запускать её у себя на компьютере на несколько часов. Особенно в свете того что у всех процессоров Intel последних поколений под крышкой терможвачка, которая при длительном воздействии высоких температур, со временем может терять свои свойства.

Программа работает как в 32-х так и 64-х битных операционных системах. Интерфейс программы переведен на английский и русский язык, пользователи должны скачать нужную версию программу с соответствующей локализацией.

Будет справляться, когда нагрузка на процессор достигнет 100 процентов. Таким образом можно выявить проблемы с охлаждением и решить их до того, как они создадут реальные неудобства. В данном материале мы расскажем о том, как провести стресс тест процессора при помощи программ LinX и OCCT.

Одной из самых известных программ для стресс-тестирования процессора является программа LinX. Данная программа полностью бесплатна и представляет собой графический интерфейс для программы Linpack, разработанной компанией Intel. С помощью данной программы можно создать предельную нагрузку на процессор и тем самым узнать до какой температуры прогреется процессор.

Для того чтобы провести стресс тест процессора при помощи LinX, на свой компьютер, распакуйте в любую папку и запустите файл LinX.exe. После запуска программы вы увидите примерно такое окно, как на скриншоте внизу. Здесь есть две кнопки «Старт» и «Стоп» с их помощью можно запускать и останавливать стресс-тест.

Но, не спешите запускать LinX. Вам еще потребуется какая-то . Для этой цели можно использовать HWmonitor. Данная программа предназначена для наблюдения за текущими параметрами системы. С ее помощью можно отслеживать температуры, нагрузку, скорость вращения кулеров и многое другое.

Установите и запустите на своем компьютере. После запуска пролистайте список параметров, которые отслеживает HWmonitor, до параметров процессора. При стресс-тестировании нужно обращать внимание на скорость вращения кулеров, температуру и тактовую частоту процессора.

После того как все готово, можно запустить стрес-тест LinX. Для этого нужно просто нажать на кнопку «Старт».

После запуска стрес-тестирования начинаем наблюдать за температурой процессора в программе HWmonitor. Если система охлаждения процессора исправна, то поначалу температура резко увеличится, но после того как вентиляторы раскрутятся на полную мощность она должна снизиться и стабилизироваться на одной отметке. На скриншоте внизу видно, что температура сначала прыгнула до 80 градусов (колонка Max), а потом снизилась до 72 градусов (колонка Value).

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

Для выключения стресс теста просто нажмите на кнопку «Стоп» в программе LinX. Если компьютер завис, и кнопка «Стоп» не работает, то перезагрузите компьютер кнопкой Reset на системном блоке.

Тестирование процессора с помощью OCCT

OCCT – еще одна очень популярная программа для стресс-тестирования процессора. OCCT оснащена сразу двумя алгоритмами тестирования процессора. Это Linpack, который используется в LinX, а также собственный алгоритм OCCT. При этом OCCT оснащается более продвинутым интерфейсом. С его помощью можно отслеживать температуру, нагрузку и другие параметры процессора. Так что при тестировании с помощью OCCT программа HWmonitor уже не понадобится.

Для того чтобы провести стресс тест процессора при помощи OCCT , установите и запустите на своем компьютере. Дальше нужно перейти на вкладку теста, который вы хотите использовать, и нажать на кнопку «ON».

Дальше все точно также как с LinX. Если система охлаждения процессора исправна, то температура сначала подскочит, а потом снизится и стабилизируется на какой-то отметке. Если система охлаждения не исправна либо не справляется с нагрузкой, то температура будет продолжать расти. В этом случае стресс тест нужно остановить.