Программы для стресс теста компьютера linux

Обновлено: 05.07.2024

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

В статье приведены конструкции из простых и всегда доступных консольных команд в 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.

Мониторим загрузку двух ядер CPU в GNU Linux используя System Monitor из KDE

Рис. 1. Мониторим загрузку двух ядер CPU в GNU Linux используя System Monitor из KDE.

На рисунке результат загрузки двух ядер связкой из двух команд которая были рассмотрена выше. Одно ядро - оранжевй график (70%), другое ядро - желтый график (40%).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 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 ядра микропроцессора:

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

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

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

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

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

В заключение

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

Но все же, установив небольшой программный пакет "stress" можно решить задачу комплексно и с дополнительными возможностями. Еще для нагрузки и тестов Linux системы можно использовать мощный комбайн "phoronix-test-suite", который придется ставить отдельно (в репозитории Debian его нет), но это уже другая история.


Квалифицированное понимание принципов функционирования операционной системы Linux – это навык, который пользуется спросом во многих специализированных компаниях по тестированию.

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

По своей сути, если в компании, где идет постоянная разработка веб-продуктов, очень сложный, многообразный back-end да и взаимодействие с серверами обязательно выстроено через SSH, то операционная система Linux в таком случае стает отличным инструментом для проведения комплексного тестирования. Понимание основ Linux – это хорошие знания того, как устроены сервера внутри, как взаимодействуют между собой процессы и так далее.

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

Комплексные проверки в Linux

Phoronix Test Suite

Утилита Phoronix Test Suite – наиболее популярный пакет для тестов и измерений вычислительной мощности Linux системы. Бытует мнение, что у этого продукта есть много проблем, но мы не будем заострять на этом свое внимание, так как ни одна утилита на все 100% не подходит для всех случаев.

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

Phoronix Test Suite

Phoronix Test Suite

Phoronix Test Suite предоставляет полноценный доступ к более чем 120 различным тестовым наборам, группам проверок и к 400 профилям испытаний. Пользователь может устанавливать сугубо те, которые ему необходимы.

К примеру, если необходимы тесты для центрального процессора или жесткого диска, потребуется установить только Processor test или HDD tests. Также дополнительно поддерживается группа системных журналов.

Самое главное преимущество продукта в том, что Phoronix test suite – программа с открытым исходным кодом. Продукт поставляется в виде LiveCD, с помощью которого можно запускать проверки прямо с компакт-диска.

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

Stress-NG

Уже с самого понятия ясно, что stress-NG – продукт для выполнения тестирования операционной системы Linux. С его помощью можно проанализировать всю функциональность системы на максимальном пределе ее технических возможностей.

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

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

Команда установки stress-NG

Команда установки stress-NG

К слову, в RED Hat и CentOS данная команда прописывается совершенно иначе:

Команда установки stress-NG в RED Hat и CentOS

Команда установки stress-NG в RED Hat и CentOS

Как только установка будет завершена, вы можете приступать ко всем запланированным проверкам (тесты процессора, ОЗУ, скорость вывода/ввода, состояние виртуальной памяти и так далее). Продукт обладает большим перечнем удобных настроек.

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

Passmark Burnitest

Passmark Burnitest

С помощью этого компонента можно выполнить любые проверки производительности ПК на Linux, а также совершать мониторинг за функциональностью всего программного обеспечения. Passmark Burnitest поддерживает параметры Memtest86 и Performance test, которые можно запустить исключительно в ОС Windows.

Пользователь Linux с помощью Passmark Burnitest может протестировать все подсистемы компьютера одновременно. Но вместо того, чтобы проверять исключительно показатели производительности, лучше всего уделять внимание надежности и безопасности.

Рекомендуется использовать компонент в комплексе с другими техническими решениями.

Проверка производительности ЦП

Наглядное сравнение сразу двух процессоров может быть достаточно точным. Скорей всего многие помнят то время, когда ЦП Pentium 3 был значительно лучше машин на основе Pentium 2. Ну а 4-ядерная система лучше 2-ядерной.

Именно поэтому проверка работоспособности процессора – занятие очень полезное и наглядно демонстрирующее его слабые и сильные стороны.

Geekbench

Продукт Geekbench – одна из наиболее распространенных утилит для проведения тестирования операционной системы Linux. В ее состав входит до 10 тестов нагрузки при функционировании над цифрами с плавающей точкой.

В сравнении с OC Windows и MacOS, где продукт обладает графическим интерфейсом, для Linux продукт имеет всего лишь консольный интерфейс.

Integer Performance

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

Hardinfo

Утилита может быть установлена в большинстве дистрибутивов системы Linux на основе традиционного менеджера пакетов. Для установки в Ubuntu придется выполнить команду:

Команда установки Hardinfo в Ubuntu

Команда установки Hardinfo в Ubuntu

Для Fedora, CentOS и Red Hat:

Команда установки Hardinfo в Fedora, CentOS и Red Hat

Команда установки Hardinfo в Fedora, CentOS и Red Hat

Базовое предназначение Hardinfo – демонстрация данных об оборудовании + выполнение тестов для сравнения оборудования с иными системами и подсистемами. Проверки включают целочисленные расчеты и вычисления с плавающей точкой.

Тесты для видеокарт

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

UNIGINE

Утилита UNIGINE поддерживает 2 разновидности тестов – тест Valley и тест Heaven. Каждая проверка демонстрирует различные сценарии.

Первая – это покрытая лесом долина, вторая – пара летающих островков с мостиками. Как Valley, так и Heaven заставляют графику вашего ПК работать на полную мощность.

Unigine

Такой проверки более чем достаточно, чтобы получить самые главные данные касательно установленной производительности видеоадаптера в системе Linux.

GFXBENCH

Ранее его название было GLBenchmark. Продукт GFXBENCH во всем мире считается наиболее качественным и достоверным тестом для графических проверок внутри операционной системы Linux. В конфигурации программы добавлено два основных набора тестов – проверки высокого уровня и низкоуровневые тесты.

GL Mark 2

Очень продвинутый программный компонент, созданный в компании Lenaro. Продукт GL Mark 2 предлагает клиенту очень большое количество разнообразных тестов, которые в той или иной степени затрагивают графический функционал аппаратного обеспечения вашего компьютера.

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

В больше чем половине дистрибутивов эта проверка устанавливается вместе с ОС, но если по какой-то случайности вы не смогли его обнаружить, установить его можно прямо из терминала (команда будет иметь такой вид):

$ sudo apt-get install glmark2

Unigine Benchmark Products

Ну и наконец можно отметить этот продукт, который обладает существенным набором самых современных тестов. Это целый набор полезных компонентов на базе 3D движка от компании UNIGINE.

Есть как платные версии, применяющие при создании видеоигр, так и совершенно бесплатные версии, которыми можно оперировать в частном порядке. Это соответственно Tropics и Sanctuary.

Тестирование жесткого диска

Скорость – это не всегда важный показатель, когда дело доходит до тестирования жесткого диска. К примеру, когда HDD используется для сохранения резервных копий, базовую роль играет его общая надежность и долговечность. Проверка производительности на Linux тоже очень важна.

HDPARM

Продукт HDPARM – приложение для командной строки, которое изначально устанавливается в дистрибутивы Linux и очень простое в своем использовании. С помощью этой программы можно провести тестирование не только винчестера, но и оптимизировать базовые параметры его функционирования, к примеру, выключить или включить функцию DMA. Для проверки необходимо знать всего лишь файл устройства вашего HDD.

Чтобы провести тесты на производительность буферизированного ввода, применяйте такую команду:

$ sudo hdparm -t /dev/sda2

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

$ sudo hdparm -T /dev/sda2

Чтобы получить более точные показатели необходимо запустить команду несколько раз, а затем выбрать наиболее средний показатель.

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

Для установки в Ubuntu необходимо:

$ sudo apt-get install bonnie++

Касательно CentOS и Red Hat:

$ sudo yum install bonnie++

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

В данном случае опция d- наглядно демонстрирует, в каком именно каталоге необходимо проводить проверку, а r- дает ограничение на потребление ОЗУ в пределах 2048Мб.

Продукты для проверки безопасности

Iptables

Специализированный инструмент командной строки клиентского пространства для оптимальной настройки брандмауэра ядра Linux. С его помощью достигается модификация и конфигурация правил для исходящих и транзитных пакетов внутри ядра Linux.

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

cryptsetup

Применяется для разработки и управления определенными зашифрованными дисковыми компонентами LUKS.

Maldet

Продукт для командной строки, особый сканер вредоносного программного кода, который он может обнаружить и быстро переместить в карантин. Может спокойно работать в режиме непрерывного мониторинга.

Getcap/setcap

С его помощью можно навсегда забыть о таких вещах как ping и traceroute во флаге прав доступа root.

Итоги

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

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

В список вошли утилиты, предлагаемые резидентами GitHub и участниками тематических тредов на Reddit, — Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone.



/ Unsplash / Veri Ivanova

Sysbench

Это — утилита для нагрузочного тестирования MySQL-серверов, основанная на проекте LuaJIT, в рамках которого разрабатывается виртуальная машина для языка Lua. Автор инструмента — программист и эксперт по MySQL Алексей Копытов. Проект начинался как хобби, но со временем обрел признание сообщества. Сегодня sysbench используют в своей работе крупные университеты и ИТ-организации вроде IEEE.

Во время конференции SECR-2017 (запись выступления есть на YouTube) Алексей рассказал, что sysbench позволяет оценить производительность базы данных при переносе на новое оборудование, обновлении версии СУБД или резком изменении числа запросов. В общем случае синтаксис команды для проведения теста выглядит следующим образом:


Эта команда определяет тип (cpu, memory, fileio) и параметры нагрузочного теста (количество потоков, число запросов, скорость обработки транзакций). В целом инструмент способен обрабатывать миллионы событий за секунду. Подробнее об архитектуре и внутреннем устройстве sysbench Алексей Копытов рассказал в одном из выпусков подкаста Software Development Podcast.

UnixBench

Набор инструментов для оценки производительности Unix-систем. Его представили инженеры из университета Монаша в 1983 году. С того момента поддержкой инструмента занималось множество людей, например, авторы журнала о микрокомпьютерных технологиях Byte Magazine и участник LKML Дэвид Ниеми (David Niemi). За выход следующей версии инструмента отвечает Энтони Воэлм (Anthony Voellm) из Microsoft.

UnixBench представляет собой набор индивидуальных тестов. Они сопоставляют скорость выполнения кода на машине под управлением Unix с производительностью эталонной системы, в роли которой выступает SPARCstation 20-61. На основе этого сравнения генерируется балл, определяющий производительность.

Среди доступных тестов числятся: Whetstone, который описывает эффективность операций с плавающей точкой, File Copy, оценивающий скорость копирования данных, и несколько 2D и 3D-бенчмарков. Полный список тестов можно найти в репозитории на GitHub. Многие из них используют для оценки производительность виртуальных машин в облаке.

Phoronix Test Suite

Наборы специализированных скриптов позволяют протестировать отдельные компоненты системы. С их помощью можно оценить время компиляции ядра и кодирования видеофайлов, скорость сжатия архиваторов и др. Для запуска тестов достаточно написать соответствующую команду в консоли. Например, эта команда инициирует оценку производительности CPU:


Во время тестирования Test Suite самостоятельно контролирует состояние оборудования (температуру CPU и скорость вращения кулеров), защищая систему от перегрева.




/ Unsplash / Jason Chen

Vdbench

Инструмент для генерации I/O-нагрузки на дисковые системы, разработанный Oracle. Он помогает оценить производительность и целостность СХД (о том, как посчитать теоретическую производительность дисковой системы, мы подготовили краткую справку).

Работает решение следующим образом: на реальной системе запускается программа SWAT (Sun StorageTek Workload Analysis Tool), которая создает дамп со всеми обращениями к диску за определённый период. Записываются метка времени, тип операции, адрес и размер блока данных. Далее, используя файл с дампом, vdbench эмулирует нагрузку на любой другой системе.

Список параметров для управления утилитой есть в официальном документе Oracle. Исходный код утилиты можно найти на сайте компании.

IOzone

Консольная утилита для оценки производительности файловых систем. Она определяет скорость чтения, записи и перезаписи файлов. В разработке инструмента приняли участие десятки программистов, но автором его первой версии считается инженер Уильям Норкотт (William Norcott). Разработку поддержали такие компании, как Apple, NetApp и iXsystems.

Для управления потоками и их синхронизации во время тестирования инструмент использует стандарт POSIX Threads. По завершении работы IOzone выдает отчет с результатами или в текстовом формате, или в виде электронной таблицы (Excel). Также инструмент имеет в составе скрипт gengnuplot.sh, который строит по данным таблиц трехмерный график. Примеры таких графиков можно найти в документации к инструменту (стр. 11–17).

IOzone доступен в качестве тестового профайла в уже упомянутом Phoronix Test Suite.

Дополнительное чтение из наших блогов и социальных сетей:

Баг в Linux 5.1 приводил к потере данных — корректирующий патч уже вышел
Есть мнение: технология DANE для браузеров провалилась

Зачем нужен мониторинг?
Резервное копирование файлов: как подстраховаться от потери данных
Как перенести системный жесткий диск в виртуальную машину?

Все говорят об утечках ПД — чем поможет IaaS-провайдер
Короткий ликбез: как устроена ЭЦП
Справочная: как работает закон о персональных данных

Прогнал я тест 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 при копировании материала ссылка на источник обязательна.

Читайте также: