Феном, пингвин и оверклокинг (часть 2)

для раздела Блоги
Начислено вознаграждение
Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Введение

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

реклама

КДПВ

Пару слов о железе. Оно с прошлого раза не изменилось: процессор Phenom II x6 1090T, материнка MSI 750-G55 под AM3, две планки по 4 ГБ памяти DDR3 1600 МГц Kingston FURY HyperX и видеокарта Palit JetStream 1060 с 3 ГБ памяти. ОС: Ubuntu MATE 16.04 x86_64.

Процессор

анонсы и реклама

Начнем рассматривать инструментарий линуксового оверклокера с тестов процессора. Особенность найденной в сети информации по теме заключается в том, что тестируются в основном сервера или рабочие станции, в которых не подразумевается разгона и задачи сводятся к работе с базами данных, сетями или компиляции кода. Если выйти за эти рамки, первым, что мне попалось в поиске, был Stress-ng.

Stress-ng

реклама

Это консольный тестовый пакет, внутри которого есть множество тестов для различных подсистем компьютера. Устанавливается из репозитория командой sudo apt install stress-ng, однако, понять сходу, какие тесты и как запускать - не просто. В интернетах часто советуют такую команду для проверки процессора:

stress-ng --class cpu --sequential 6 --timeout 60s --metrics-brief

реклама

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

stress-ng --lsearch 6 --timeout 300s --metrics-brief

реклама

Эта команда запускает шесть экземпляров теста lsearch на пять минут (например) и выводит результаты. Тест представляет собой линейный поиск среди 32-битных элементов массива. Кроме процессора, он также сильно загружает контроллер памяти. Видимо, это и способствует его эффективности - тест выдает максимальный нагрев среди всех, относящихся к классу процессорных. Выводимые результаты (для 30 с теста с тремя запущенными экземплярами) выглядят так:

Результаты stress-ng (lsearch)

Представлена информация о том, что запущены три экземпляра теста, задействующие весь феномовский кэш третьего уровня в 6 МБ. Тест закончен за 30 с без ошибок. Столбцы в табличке несут следующую информацию (перевод цитат из "STRESS_NG General Commands Manual"):

Bogo ops

Количество законченных итераций теста за заданное время работы. Это показатель выполненного количества работы за время теста.

Real time (secs)

Средняя продолжительность теста в секундах. Это полное время выполнения всех задач отдельного теста, деленное на количество запущенных экземпляров теста.

Usr time (secs)

Полное время пользователя (в секундах), затраченное на запуск всех задач теста.

Sys time (secs)

Полное время системы (в секундах), затраченное на запуск всех задач теста.

Bogo ops/s (real time)

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

Bogo ops/s (usr+sys time)

Количество выполненных итераций теста в секунду, вычисленное по суммарному времени пользователя и времени системы. Это реальный рейтинг производительности, учитывающий действительное время окончания теста по всем процессорам (ядрам). Этот показатель меньше расчетного, в основном, из-за конкуренции нескольких процессоров (ядер) за доступ к кэшу, памяти, исполнительным устройствам, шинам и устройствам ввода/вывода.

Из всего вышеназванного нас интересуют два показателя Bogo ops/s (real time) и Bogo ops/s (usr+sys time). Первый показывает суммарную производительность процессора, а второй - производительность на ядро. Таким образом, с помощью этого теста можно не только проверить стабильность работы процессора, но и оценить его производительность.

Выглядит Stress-ng неплохо и для экспресс тестирования его должно быть достаточно, но мне захотелось узнать о возможности использовать что-то аналогичное популярным Windows-тестам типа LinX или Prime95

LinX

LinX представляет собой GUI для теста Linpack. Теоретически, есть его версия и под Linux (лежит тут ), а практически, мне запустить ее на Феноме не удалось. Тест (этот вариант теста, не используемый алгоритм) создан компанией Intel и лежит на ее сайте, так что отсутствие поддержки AMD по умолчанию понятно. Возможно, надо его просто пересобрать (по ссылке есть и исходники, правда серверной, а не десктопной версии) под амдешные процессоры, но, на мой взгляд, это уже выходит за рамки доступного простым юзерам. Других же вариантов запуска Linpack я не нашел, потому придется обойтись без него. Но есть ведь другой кроссплатформенный тест - Prime95.

Prime95

Это клиентская программа для проекта распределенных вычислений GIMPS. Одна из функций этой программы - стресс-тест железа. Она производит вычисления и сравнивает результат с заранее известным, что позволяет выявить ошибки, являющиеся результатом нестабильной работы системы. Но, кроме этого, она еще и отлично прогревает процессор, используя целочисленные вычисления, вычисления с плавающей запятой, задействуя кэш и заданное количество ядер. Скачать можно с сайта проекта: https://www.mersenne.org/download/ . Установка проста - распаковываем скачанный архив в папку и запускаем программу следующей командой:

./mprime -m

Очевидно, программа также консольная и интерфейс не сказать, чтобы интуитивно понятный. При первом запуске, для использования только в качестве теста нужно выбрать вариант "Just Stress Testing". При дальнейшем использовании вывод этой команды будет выглядеть так:

Prime95: запуск теста и задание кол-ва потоков

Здесь нужно выбрать пункт 15 ("пыточный" тест), а затем задать количество потоков (в моем случаем - 6).

Prime95: выбор типа теста

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

Prime95: работа теста

Запускаются шесть экземпляров теста и, по мере выполнения, программа рапортует об их завершении. По нажатию Ctrl+C тесты останавливаются, выдавая отчет о количестве ошибок. Если ничего не нажать, тест будет крутиться бесконечно, что, в общем-то от него и требуется - тестирование стабильности системы может длиться часами. Запустить уже настроенные тесты можно так:

./mprime -t

Никаких проблем с работой Prime95 под Linux нет, свою задачу (прогрев процессора) тест выполняет на отлично. Единственный его недостаток - он не показывает производительность системы, то есть годится исключительно для тестирования стабильности работы. Попугаев же приходится добывать чем то иным. И тут на сцену выходит PTS.

Phoronix Test Suite

Описание (перевод) с сайта разработчиков:

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

Очевидно, это не тест, а набор инструментов для работы с различным тестовым ПО. Опенсорсный, фриварный и консольный. Больше подробностей о работе с ним на русском языке тут: Phoronix Test Suite, или как тестировать процессоры it-шнику. Часть 1: Intel vs AMD . Второй части, увы, не будет - автор больше не пишет на оверах. Это довольно таки плохая новость, потому как информации о работе с PTS в рунете очень мало. Вот, разве что, еще одна интересная заметка нашлась: Утилита тестирования Phoronix Test Suite . А дальше пришлось разбираться самому по англоязычным манам.

Устанавливается PTS из репозитория следующей командой:

sudo apt-get install phoronix-test-suite

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

phoronix-test-suite list-available-tests | grep Processor

Вывод:

PTS: список тестов процессора

И так далее - весь список я приводить не буду, т.к. тестов очень много. Отсюда вытекает первая проблема PTS - муки выбора. Определиться с тем, какие из тестов использовать, не так то просто. Исходя из общих соображений, мне будет нужно следующее: однопоточный и многопоточный тесты производительности, а так же несколько тестов производительности в задачах, приближенных к моим повседневным наиболее часто используемым. В качестве теста однопоточной производительности, я выбрал Himeno Benchmark. В качестве теста многопоточной производительности - Stockfish. "Повседневные" тесты - архиватор (7-Zip Compression), видеокодек (FFmpeg), обработка изображений (GraphicsMagick).

Почему выбраны именно эти тесты? Однопоточная производительность мне интересная только из-за не самого быстрого контроллера памяти Фенома. Он может ограничить эффект от разгона процессора по частоте при полноценной загрузке всех ядер. При нагрузке же на одно ядро, я смогу четко увидеть влияние частоты ядра на его производительность. Многопоточный тест покажет мне полную картину, с учетом частоты не только ядер, но и контроллера памяти - довольно интересная информация на мой взгляд. Какой тест использовать для однопотока, в принципе, без разницы, т.к. я сравниваю один и тот же процессор между собой и нюансы архитектуры учитывать нет нужды. Потому, взял первый попавшийся тест, а его заточенность на использование блока FPU тут роли не играет. Тоже можно сказать и про выбор многопоточного теста - подойдет любой, умеющий хорошо распараллеливать задачи. Ну, а критерии для "повседневных" тестов, думаю, очевидны - нужна имитация моего обычного сценария использования компа.

Вторая проблема PTS - отсутствие развернутого описания тестов. Без ковыряния в текстовых конфигах на Гитхабе, понять, что делает каждый из тестов и с какими опциями он запускается невозможно. Может быть, это я туплю, но где найти эту инфу, так и не понял. Ниже приведены краткие описания из Гит-репозитория ( https://github.com/phoronix-test-suite/test-profiles/tree/master/pts ).

Himeno Benchmark

Тест производительности системы при линейном решении уравнения Пауссона, описывающего поле давления в жидкости, методом Якоби. Результат в MFLOPS (миллион операций с плавающей точкой в секунду).

Stockfish

Тест открытого шахматного движка, написанного на С++11, который легко масштабируется на большое количество ядер (до 128). Результат в Nodes Per Second (кол-во позиций в секунду).

7-Zip Compression

Тест архиватора 7-Zip, использующий p7zip с его встроенным тестом производительности. Результат в MIPS (миллион инструкций в секунду).

FFmpeg

Этот тест использует библиотеки FFmpeg для измерения производительности системы при кодировании аудио и видео. Результат в секундах.

GraphicsMagick

Тест графический библиотеки GraphicsMagick, реализованный средствами OpenMP. Выполняет различные тесты на эталонном JPEG-изображении 6000х4000 пикселей. Результат в Iterations Per Minute (кол-во итераций в минуту). В качестве тестов используются следующие операции: colorspace HWB, operator all Noise-Gaussian 30%, enhance, resize 50%, rotate 90, sharpen 0x2.0, swirl 90.

Выбранный тест можно запустить (если он еще не установлен, будет выведен запрос на установку), например, такой командой:

phoronix-test-suite run pts/ffmpeg

По окончанию теста на экран будет выдан отчет:

PTS: результаты теста FFmpeg

По нему видно, что тест запускается три раза, а затем вычисляется среднее значение. Если результаты отличаются слишком сильно, тест будет запускаться еще и еще до тех пор, пока не получится три более-менее близких значения. Результаты также сохраняются в ~/.phoronix-test-suite/test-results/ При запуске теста, PTS спрашивает, стоит ли их там сохранять. Можно задать имя теста и имя текущего прогона этого теста. При следующем запуске, результаты можно будет сохранить с тем же именем теста, но под другим именем прогона, тогда информацию об обоих прогонах PTS оформит в диаграмму такого вида:

Результаты двух прогонов теста FFmpeg

Результаты тестов также можно сразу же загружать на сайт OpenBenchmarking.org

В PTS есть еще и графический интерфейс в виде браузерного приложения. Запускается вот такой командой:

phoronix-test-suite gui

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

Скриншот GUI Phoronix

В целом, для задач тестирования процессора PTS хватает за глаза - это очень могучий инструмент, пользоваться которым, правда, не просто. Я юзал самые базовые возможности, не касаясь даже десятиметровой палкой редактирования скриптов, которое, насколько я понимаю, и раскрывает мощь PTS в полной мере. На результаты работы профессионалов же можно посмотреть на соответствующем сайте . Еще я забыл упомянуть о возможности PTS измерять производительность в играх, запускаемых через Steam. Такая тоже есть, но, как пользоваться ею, совсем не очевидно, а мне эта возможность была не особо интересна в контексте этой темы и разбираться я не стал. Вместо этого, для имитации игрового теста я использовал Unigine Valley.

Unigine Valley

Это кроссплатформенный графический тест, разработанный, внезапно, томской компанией Unigine (на ЛОРе можно понаблюдать за довольно интересным общением их сотрудника с юзерами). Профильная деятельность компании - одноименный 3D-движок, а тесты - продукт побочный, однако неплохой. На текущий момент актуальны три их варианта: Heaven (2009), Valley (2013) и Superposition (2017). Все тесты на Linux используют OpenGL и задействуют только одно ядро процессора, что на тестировании видеокарт никак не сказывается, а вот в случае с CPU это могло бы быть проблемой, если бы не одно но - большинство нативных и Wine-игр, не использующих Vulkan, утилизируют ресурсы процессора так же неэффективно. Т.е. эти тесты, в итоге, хорошо имитируют линукс-гейминг (лично для меня, как ценителя относительно старых игр).

Выбор мною Valley обусловлен низкими системными требованиями (по сравнению с Superposition, который много весит, долго запускается и требует не антикварную видеокарту) и большим количеством 3D-объектов в кадре (по сравнению с Heaven, который скорее про освещение и различные пост-эффекты, чем про геометрию). Впрочем, разница там гомеопатическая и нагрузку на процессор все три теста дают примерно одинаковую, можно брать любой.

Для установки нужно скачать run-файл отсюда и запустить командой ./Unigine_Valley-1.0.run. Программа установится в папку ~/Unigine_Valley-1.0, откуда ее можно запустить командой ./valley или кликом мышью по этому файлу. После запуска появляется окно настроек:

Скриншот окна настроек Unigine Valley

Для теста CPU я выключаю сглаживание и выставляю низкое разрешение. Качество оставляю высоким, чтобы не уменьшать количество 3D-объектов и полигонов на них, хотя, не факт, что опция на эти параметры влияет. Но упора в видеокарту все равно нет - пусть будет высоким. Однако, это не все доступные настройки. Запустив тест кнопкой "RUN", в появившемся меню настроек можно будет отключить еще некоторые эффекты, увеличивающие нагрузку на видеокарту: Ambient Occlusion (имитация глобального освещения), Объемные тени и Размытие. Теперь можно приступать к тесту (кнопка "Бенчмарк"), после которого выдается окно с результатами:

Скриншот окна результатов теста Unigine Valley

Выводится средний, минимальный и максимальный FPS и некие попугаи-баллы - вполне информативно. Казалось бы, смысла в тесте ровно ноль, ведь используется только одно ядро процессора и то до конца не загружено. Однако, результаты очень неплохо коррелируют с частотой процессора и, как ни странно, позволяют быстро оценить прирост производительности в играх при его разгоне. Так что, Valley, как тесту процессора, быть. На десерт остался еще один кроссплатформенный тест - Geekbench 5.

Geekbench 5

Описание (перевод) с сайта разработчиков:

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

Скачать можно отсюда. Для установки нужно только распаковать архив. Внутри два файла - для 32-х или 64-х битной системы. Запускается такой командой:

./geekbench5

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

Скриншот результатов Geekbench 5

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

Память

Memtest86+

Для быстрого тестирования стабильности подойдет старый добрый Memtest86+. Он использует свой собственный загрузочный образ (т.е. по умолчанию является кроссплатформенным), который можно скачать с сайта разработчика. Мне, правда, кажется более удобным использовать его в составе  System Rescue CD (набор опенсорсных утилит для диагностики и восстановления работоспособности компа). Этот вариант подходит для любой платформы, на которой есть CD-привод или USB-порт для загрузки с внешнего устройства. Для своей же системы все еще проще - Memtest86+ включен в дистрибутив Ubuntu и может быть запущен при старте перед загрузкой ОС (меню загрузчика появляется при нажатии Shift). Выглядит Memtest86+ так:

Скриншот Memtest86+

Программа выводит данные о процессоре, скорость работы его кэшей, скорость работы самой памяти, ее частоту и тайминги. Но вся эта информация несколько попугайская, потому что программа практически не обновляется с 2013 года и не слишком уверенно взаимодействует с относительно современным железом. Есть более современный аналог - Memtest86, форком четвертой версии которого и является Memtest86+. Этот проект продолжает развиваться и современной аппаратной начинке соответствует, однако, он позволяет работать только с материнскими платами с поддержкой UEFI, коего моя старушка лишена. Впрочем, это не важно - производительность я буду измерять другими средствами, а Memtest86+ использую для проверки стабильности работы оперативной памяти после увеличения частоты и игр с таймингами. Тестирование утилитой может длится бесконечно (пока не будет нажата Esc) и, в случае появления ошибок в работе памяти, экран окрасится красным и будут выведены сообщения об адресах памяти, при работе с которыми были выявлены проблемы. После нескольких циклов работы Memtest86+, в качестве окончательной проверки, я использую пару часов прогона Prime95 в режиме Blend, где максимально задействована память. Этого набора достаточно для тестирования стабильности работы, но хочется еще и более-менее валидной информации о производительности ОЗУ. Для этого мне пригодилась программа Lmbench.

Lmbench

В принципе, в упомянутом выше PTS есть тесты, предназначенные именно для работы с памятью, но я среди них не увидел таких, которые бы выдавали в качестве результатов два главных показателя производительности подсистемы памяти: пропускную способность и задержки для базовых операций с данными. Для их измерения я, внезапно для себя, открыл олдскульный опенсорсный бенчмарк Lmbench. Это набор простых кроссплатформенных тестов (пара десятков) для UNIX-систем. В рунете информации о нем крайне мало, и это странно - штука-то хорошая.

Устанавливается из репозиториев командой sudo apt install lmbench , после чего нужно создать папку для тестовых файлов командой mkdir /var/tmp/lmbench . Теперь можно запустить тест:

sudo lmbench-run

При каждом запуске будет задан ряд вопросов для настройки тестов:

MULTIPLE COPIES [default 1]: 6

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

Job placement selection [default 1]:

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

MB [default 5588]:

Количество доступной оперативной памяти. Не более 80% от общего количества памяти системы. Для полноценного теста оставляем значение по умолчанию, но можно задать меньшее для уменьшения времени тестирования. По получению ответа на этот вопрос, lmbench три раза протестирует заданное количество памяти. Это займет довольно продолжительное время и к дальнейшим вопросам можно будет перейти только по окончанию проверки.

SUBSET (ALL|HARWARE|OS|DEVELOPMENT) [default all]: HARDWARE

Выбор используемого набора тестов: все, оборудование, операционная система, разработка. Последний пункт позволяет выбрать для запуска конкретные тесты. Очевидно, для оверклокинга хватит "железного" набора.

FASTMEM [default no]: yes

Включение режима быстрой проверки памяти. В нем используется упрощенное измерение задержек ОЗУ (шаг данных при тестировании начиная с 128 байт). При размере кэша процессора больше 128 байт, тестирование с меньшим шагом бессмысленно, так что включение должно экономить время, однако на самом деле экономия там небольшая, т.к. измерение задержек - это только часть тестов, а время, затраченное на остальные, никак не меняется. Но пару минут можно выиграть - включаем.

SLOWFS [default no]:

Включение режима проверки медленных файловых систем. При тестировании жестких дисков с древними файловыми системами процесс может затянуться и там эта опция нужна. В при тестировании ОЗУ не используется, оставляем выключенной.

DISKS [default none]:

Указание тестируемых жестких дисков (/dev/sda и т.д.). По умолчанию тестирование выключено. Нас интересует только ОЗУ - пропускаем.

REMOTE [default none]:

Настройка тестирования сети. По умолчанию выключено. Так же пропускаем.

Processor mhz [default 3800 MHz, 0.2632 nanosec clock]:

Задание частоты процессора. Определяется тестом автоматически, однако, не всегда верно. Если значение по умолчанию не соответствует реальности, указываем частоту вручную.

FSDIR [default /var/tmp/lmbench]:

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

Status output file [default /dev/tty]:

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

Mail results [default yes]: no

Оправка результатов в онлайновую базу данных на сайте . Выключаем за ненадобностью.

Получив ответы на эти вопросы, lmbench начинает тестирование, выводя на экран информацию по текущему тесту:

Работа lmbench

По окончании тестов результаты можно найти в папке /var/lib/lmbench/results в виде текстовых файлов. После каждого запуска lmbench формируется отдельный файл. В нем можно найти результаты следующих тестов:

  • Время выполнения различных операций с числами (сложение, деление и т.д.).
  • Пропускная способность памяти при выполнении функции bcopy (копирование данных) в различных вариациях.
  • Пропускная способность памяти при выполнении функции bzero (запись нулей в память) в различных вариациях.
  • Пропускная способность памяти при выполнении последовательного и выборочного чтения данных.
  • Пропускная способность памяти при выполнении последовательной и выборочной записи данных.
  • Пропускная способность памяти при выполнении выборочных чтения и записи данных.
  • Пропускная способность памяти при параллельной загрузке данных.
  • Задержки и пропускная способность памяти при выполнении различных тестов из набора STREAM.
  • Задержки памяти при последовательной загрузке данных с различным шагом.
  • Задержки памяти при выборочной загрузке данных с шагом 16 байт.

Информации много, но для меня интересно только то, что относится к чтению, записи и копированию данных и задержкам при загрузке данных. Критерием для выбора именно такого набора послужило то, что популярная Windows-программа проверки железа AIDA64 по умолчанию проверяет память подобными же тестами, то есть результаты можно будет сравнить при желании. В качестве примера работы Lmbench, возьмем тест пропускной способности памяти при последовательном чтении (Memory read bandwidth) для частоты 1600 МГц в шестипотоке (данные в необработанном виде):

0.000512 96005.86

0.001024 97784.17

0.002048 98745.72

0.004096 99112.05

0.008192 99028.73

0.016384 99811.62

0.032768 100090.83

0.065536 100146.34

0.131072 96016.28

0.262144 95289.41

0.524288 81185.55

1.05 46181.37

2.10 18470.46

4.19 17335.67

8.39 17355.95

16.78 17338.98

33.55 17361.37

67.11 17340.12

134.22 17377.24

268.44 17358.60

536.87 17349.99

В первом столбце - размер читаемого блока данных (от 512 байт до 536,87 мегабайт). Во втором - пропускная способность памяти в мегабайтах в секунду. При малом размере блока, тот полностью помещается в кэш процессора и отображается именно его пропускная способность. Но размер кэша в моем Феноме только 6 МБ, так что начиная с блока размером 2,1 МБ (для каждого ядра, в сумме - 12,6 МБ) уже можно посмотреть на работу ОЗУ. Для большей наглядности, можно взглянуть на графики, построенные по этим данным в LibreOffice Calc. Вот, например, сравнение графиков для теста чтения памяти на частотах 1600 МГц и 1333 МГц в шестипотоке.

График пропускной способности памяти при последовательном чтении

Не сказать, чтобы с Lmbench было просто и удобно работать, однако, свои задачи она выполняет и я получил все необходимые данные по производительности подсистемы памяти, хотя времени на поиск подходящего ПО пришлось потратить изрядно.

Выводы

По итогам разбора темы тестов процессора и памяти под Linux могу сказать, что работа увенчалась успехом - все свои хотелки я реализовал. Набор инструментов получился следующим:

Тип теста
Основное ПО
Дополнительное ПО
CPU (стабильность) Prime95 (Small FFTs) Stress-ng (lsearch)
CPU (производительность) PTS (Himeno Benchmark, Stockfish, 7-Zip Compression, FFmpeg, GraphicsMagick) Geekbench 5
CPU (3D) Unigine Valley Unigine Heaven
ОЗУ (стабильность) Memtest86+, Prime95 (Blend) -
ОЗУ (производительность) Lmbench (Memory read bandwidth, Memory write bandwidth, libc bcopy unaligned, Memory load latency) -

Разбивка по категориям несколько условная, потому что большинство тестов производительности неплохо проверяют и стабильность работы системы. А вот насчет деления на основное и дополнительное... Тут все сложнее. Stress-ng в целом хорош, но уступает связке из Prime95 и PTS. Если нужен экспресс-тест, ставим Stress-ng, запускаем lsearch, ..., PROFIT. Аналогично и с Geekbench 5, который может быстро выдать информацию по производительности, но по возможностям выбора тестов сильно уступает PTS. Утилиты для 3D-графики поделены совсем условно: между Heaven и Valley разницы почти никакой, ну а Superposition я сюда вообще не записал за его излишнюю для задач тестирования процессора громоздкость. По памяти все очевидно, но могу напомнить, что производительность ее можно мерить еще и тестами PTS из категории Memory, однако они гораздо менее информативны, чем Lmbench. Естественно, это не все доступное под Linux тестовое ПО - море его осталось за рамками этой заметки. И, очевидно, даже в рассмотренном ПО показаны только базовые возможности.

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

Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал
рейтинг: 3.7 из 5
голосов: 17

Комментарии Правила

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают