Как выполнить стресс тест процессора. Стресс тест процессора Дать определение невытесняющей многозадачности

Мониторинг осуществляется с помощью комплекта программ lm-sensors .


aptitude install lm-sensors

Снимать показания датчиков можно командой:


sensors

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


watch sensors

В выводе команды содержится информация о напряжении, скорости вращения вентилятора, температуре процессора (каждого ядра в отдельности), температуре жёстких дисков. Важным показателем является максимально зафиксированное значение температуры (поле high в показаниях температуры ядра). Мониторить только температуру процессора можно командой:


while {true} do date; sensors | grep Core; echo "======"; sleep 1s; done

Также существуют различные графические утилиты для отображения показаний lm-sensors . Для GNOME удобно использовать апплет GNOME Sensors Applet .

Стресс-тестирование процессора

Пакет cpuburn

Проверка работоспособности драйверов видеокарты

Проверим наличие 3D-ускорения:


glxinfo | grep OpenGL

Вывод должен быть таким:


OpenGL vendor string: Tungsten Graphics, Inc OpenGL renderer string: Mesa DRI Intel(R) G33 GEM 20100330 DEVELOPMENT OpenGL version string: 1.4 Mesa 7.10-devel OpenGL extensions:

Проверим поддержку 3D-ускорения средствами видеокарты:


glxinfo | grep direct

Если поддержка 3D реализована, вывод будет таким:


direct rendering: Yes

Проверим скорость работы 3D:


glxgears

Появится окно с простой 3D-анимацией. В консоль при этом будет каждые 5 секунд выводиться информация о скорости рендеринга. Нормальные значения FPS для настроенного драйвера должны быть в среднем выше 1000 (если включена вертикальная синхронизация, то значение FPS будет ограничено частотой синхронизации).

Ещё один тест OpenGL:


/usr/lib/xscreensaver/glblur -fps

Появится окно скринсейвера, в котором будет отображаться значение FPS.

В случае каких-либо проблем, можно переустановить видеодрайвер (для встроенных видеокарт Intel нужно переустановить пакет xserver-xorg-video-intel ). Настройки драйвера осуществляются программой driconf . Также для контроля работы видеокарты Intel можно установить пакет intel-gpu-tools (в пакет входит утилита intel_gpu_top, позволяющая в реальном времени мониторить загрузку видеопроцессора).

Тестирование производительности системы

Пакет phoronix-test-suite

Тестирование производительности осуществляется программой phoronix-test-suite . Она представляет собой программную оболочку, позволяющую в автоматическом режиме скачивать и запускать различные программы тестирования, собирать и хранить данные о результатах тестов.

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


aptitude install phoronix-test-suite

Просмотреть список всех доступных тестов с их кратким описанием можно следующей командой:


phoronix-test-suite list-tests

Тесты запускаются командой:


phoronix-test-suite benchmark ИМЯ_ТЕСТА

  • Процессор :

    • c-ray - многопоточный математический тест. Высокая нагрузка на процессор. Результат на C2D 2.0: 387.55 секунд.

    • build-linux-kernel - сборка ядра Linux. Долгий тест. Равномерно нагружает процессор и память (использует gcc).

    • scimark2 - мощный однопоточный тест (интенсивные научные вычисления). Показывает производительность одного ядра в гигафлопсах.

    • ffmpeg - кодирование видео (тестовые файлы занимают 130MB). На C2D 2.0: 25.99 секунд.


  • Память :

    • ramspeed - тест памяти. Средняя нагрузка на процессор. Результаты DDR2-800 2Gb (copy,int) : 2280.10 MB/s.

    • stream - показывает скорость памяти в различных операциях.


  • Жёсткий диск :

    • iozone - тест жёсткого диска. Показывает скорость чтения и записи для блоков различной длины. Результат WD 80Gb (W,4K,512M): 52.42 MB/s.


  • Графика :

    • gtkperf - тестирование различных элементов графического интерфейса GNOME.

    • unigine-tropics - красивый 3D-бенчмарк, необходимы настроенные драйвера с поддержкой 3D-ускорения.


Для длительного разнопланового тестирования рекомендуется build-linux-kernel . Для короткого стресс-тестирования c-ray (наряду с программой

Производительность виртуальных машин очень важна для нас, так как сейчас уже никого не удивить словами "Облачные вычисления", потому что они приходят к нам все ближе и ближе. Уже существует огромное количество провайдеров, которые предлагают свои виртуальные сервера, для наших нужд. Имея такой огромный выбор, охота протестировать каждый на предмет производительности, чтобы сделать правильный выбор.

Существует специальный пакет тестов для Linux, при помощи которого, вы сможете проверить каждую виртуальную машину на производительность и проанализировать результаты в последующем.

Phoronix Test Suite - opensource-платформа, которая включает в себя набор специальных тестов для виртуальных машин под Linux.

Установка Phoronix Test Suite в Linux

На момент написания статьи, последней версией Phoronix Test Suite является 4.8.2 . Для проверки более актуальных версий, смотрим ftp-хранилище Phoronix . Также на сайте Phoronix Test Suite в разделе Download можете скачать исполняемый файл, если у вас не Ubuntu или Debian:)

Если у вас дистрибутив Ubuntu или Debian и вы уже скачали deb-файл Phoronix Test Suite по ссылке выше, то установите его так:

sudo apt-get install php5-cli curl php5-gd

sudo dpkg -i phoronix-test-suite_4.8.2_all.deb

Отмечу, что версия Phoronix Suite Test может отличаться, на момент написания статьи, последней версией была именно 4.8.2.

Для пользователей CentOS / RHEL и Fedora нету rpm файла на сайте, но они могут скачать tar.gz и установить тест командами:

sudo yum install php-cli php-gd curl

sudo tar xvfvz phoronix-test-suite-4.8.2.tar.gz

cd phoronix-test-suite

sudo ./install-sh

Ну а если вы работаете с openSUSE, то для начала нам нужно подключить специальный репозиторий Benchmark, там и лежит наш тест от Phoronix:

openSUSE Factory:

zypper ar http://download.opensuse.org/repositories/benchmark/openSUSE_Factory/benchmark.repo

zypper ar http://download.opensuse.org/repositories/benchmark/openSUSE_12.3/benchmark.repo

zypper ar http://download.opensuse.org/repositories/benchmark/openSUSE_12.2/benchmark.repo

zypper in phoronix-test-suite

Работа с Phoronix Test Suite

Phoronix Test Suite автоматически скачивает тестовые профили и пакеты, которые вы выберете, а также может загружать результаты тестов на openbenchmarking.org, по вашему желанию. Для первого запуска теста, вам понадобится интернет, как я уже говорил ранее, для загрузки тестовых профилей и пакетов

Если виртуальная машина, которую вы собрались тестировать, находится за proxy, то для начала необходимо будет произвести настройку прокси-сервера с помощью команды. Для этого выполните в терминале:

phoronix-test-suite network-setup

Теперь можно приступить к тестам...

Посмотреть общее количество доступных тестов в Phoronix Test Suite, можете командой:

phoronix-test-suite list-tests

Вот список тестов:

  • pts/aio-stress - AIO-Stress, Диск;
  • pts/apache - Apache Benchmark, Система;
  • pts/apitrace - APITrace, Графика;
  • pts/battery-power-usage - Battery Power Usage, Система;
  • pts/blake2 - BLAKE2, Процессор;
  • pts/blogbench - BlogBench, Диск;
  • pts/bork - Bork File Encrypter, Процессор;
  • pts/botan - Botan, Процессор.

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

phoronix-test-suite list-suites

  • pts/audio-encoding - Audio Encoding, Система;
  • pts/chess - Chess Test Suite, Процессор;
  • pts/compilation - Timed Code Compilation, Процессор;
  • pts/compiler - Compiler, Процессор;
  • pts/compression - Timed File Compression, Процессор;
  • pts/computational - Computational Test Suite, Система;

К примеру вы хотите протестировать Apache (первый список), то запускаем тест командой:

phoronix-test-suites run apache

Если вы запускаете тот или иной тест первый раз, Phoronix Test Suite может предупредить вас об доустановки недостающих пакетов, все произойдет в автоматическом режиме.

По окончанию теста, результат будет сохранен на ваш компьютер и по желанию отправлен на openbenchmarking.org, чтобы другие пользователи могли сравнивать со своими результатами.

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

phoronix-test-suite list-results

Вам не нравятся номинальные ограничения скорости процессора, Вы предпочитаете разогнать процессор до предела его возможностей? Если процессор сможет работать быстрее, значит и для памяти можно вслед за ним попробовать увеличить тактовую частоту шины и/или множитель. Разогнать процессор просто, - нужно увеличить его рабочую частоту. Разгон частоты процессора (оверклокинг) может привести к нестабильной работе компьютера, а иногда, что впрочем довольно редко происходит, это может привести и вовсе к выходу компьютера из строя. Ну раз уж Вы решились.. Для определения корректности работы процессора в случае разгона полезно будет провести тест стабильности системы при максимальной, пиковой занятости процессора и нагрузке на оперативную память. Иными словами, выяснить, будут ли появляться ошибки процессора и оперативной памяти в режиме повышенной производительности компьютера. Программа LinX это стресс-тест и для ЦП и для RAM.

Тест стабильности системы LinX

Перед тестированием процессора и ОЗУ используя перегрузку ресурсов рекомендуется закрыть все программы, чтобы использовать как можно больше свободной памяти. Тест стабильности системы LinX реализован с использованием технологии Intel Linpack. Стресс-тест-утилита LinX работает с любыми процессорами Intel и AMD, для Intel процессоров приложение поддерживает технологию Intel HyperThreading. LinX может провести тест на стабильность системы в 32-х и 64-х битном режиме тестирования.

Настройки и возможности LinX

  • использование для нагрузки ресурсов пакета Intel Linpack;
  • поддержка технологии Intel HyperThreading (Pentium IV, Atom, Core i7);
  • поддержка процессоров Intel и AMD;
  • нагрузка процессора в несколько потоков;
  • выбор приоритета;
  • автоматическое сохранение настроек после теста;
  • выбор выделяемого объема оперативной памяти для теста;
  • предварительный расчет времени для выполнения стресс-теста;
  • установка максимального объёма задачи Lin32;
  • контроль ошибок с возможностью автоматической остановки стресс-теста при ошибке;
  • автоматическое сохранение отчета тестирования;
  • сигнализация уведомлений звуком;
  • импорт значений температуры процессора, скорости вентилятора ЦП и величин напряжений тока из программ Everest и Speedfan;
  • построение графиков;
  • поддержка командной строки;
  • создание и сохранение скриншотов.

Скриншоты программы 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", но это уже отдельная история...

Программа cpuburn предназначена для проведения стресс-теста вашей системы путем максимальной загрузки и разогрева центрального процессора. Оптимизирована для различных типов процессоров. Работает посредством выполнения бесконечного цикла для ALU (арифметико-логический блок процессора) и FPU (блок операций с плавающей запятой). НЕ тестирует каждую инструкцию процессора, т.к. цель программы максимально разогреть процессор, тем самым дав стрессовую нагрузку на сам процессор, систему охлаждения, материнскую плату (особенно регуляторы напряжения) и источники питания.

Программа состоит следующих модулей:

burnP5 - оптимизирован для процессоров Intel без инструкций MMX;
burnP6 - для процессоров Intel с поддержкой инструкций MMX;
burnK6 - для процессоров AMD серий K6;
burnK7 - для процессоров AMD Athlon, Duron и далее...;
burnMMX - тест интерфейсов кэша/памяти для всех процессоров с поддержкой инструкций MMX;
burnBX - альтернативный тест кэша/памяти для процессоров Intel.

Установка:

apt-get install cpuburn

Жарим проц

Чтобы загрузить все ядра - запускаем нужное кол-во экземпляров теста, подходящего для процессора (в моем случае процессор intel имеет 8 ядер):

burnP6 & burnP6 & burnP6 & burnP6 & burnP6 & burnP6 & burnP6 & burnP6 &