Benchmarking (Русский)

Состояние перевода: На этой странице представлен перевод статьи Benchmarking. Дата последней синхронизации: 25 октября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

  • Работает ли система так, как должна?
  • Какую версию драйвера следует использовать для достижения оптимальной производительности?
  • Способна ли система выполнить задачу x?

Для определения производительности системы можно использовать множество инструментов; ниже приведён список доступных инструментов.

Отдельные инструменты

UnixBench

Установите пакет unixbenchAUR и для запуска тестирования выполните команду ubench.

Смотрите также:

interbench

interbench — это приложение для оценки интерактивности в Linux. Оно предназначено для измерения влияния изменений в дизайне ядра Linux или изменений конфигурации системы, таких как изменения и опции процессора, планировщика ввода-вывода и файловой системы.

Совет При аккуратном тестировании можно сравнивать разное оборудование.

interbench доступен в AUR: interbenchAUR.

Смотрите также:

ttcp

ttcp (Test TCP) измеряет пропускную способность точка-точка через любое сетевое соединение. Программа должна быть установлена на обоих узлах, между которыми необходимо определить пропускную способность.

Различные варианты ttcp можно найти в AUR:

iperf

iperf — это простой в использовании инструмент тестирования пропускной способности сети между двумя узлами, который может использовать TCP или UDP. Он имеет красиво отформатированный вывод и режим параллельного тестирования.

Есть две разные версии: iperf и iperf3.

time

Команда time(1) предоставляет статистику времени выполнения команды, отображая время, прошедшее между вызовом и завершением. Пакет time предоставляет команду time, а некоторые командные оболочки предоставляют time в качестве встроенной команды.

$ time tar -zxvf archive.tar.gz

hdparm

Накопители можно тестировать с помощью hdparm (пакет hdparm). Используя hdparm с ключом -Tt, можно определить время последовательного чтения. Этот метод не зависит от выравнивания разделов.

# hdparm -Tt /dev/sdX
/dev/sdX:
Timing cached reads:   x MB in  y seconds = z MB/sec
Timing buffered disk reads:  x MB in  y seconds = z MB/sec
Примечание Для точной оценки скорости чтения следует выполнить эту команду 2-3 раза и вручную усреднить результаты, согласно странице руководства hdparm.

gnome-disks

Графический бенчмарк gnome-disks (пакет gnome-disk-utility) показывает минимальную, максимальную и среднюю скорости чтения, а также среднее время доступа, с красивым графическим отображением. Этот метод не зависит от выравнивания разделов.

# gnome-disks

Бенчмарк находится в главном меню, пункт Оценить производительность диска. Пример бенчмарка

KDiskMark

kdiskmark — это инструмент для измерения производительности HDD и SSD с очень дружественным графическим интерфейсом. KDiskMark с его предустановками и мощным графическим интерфейсом вызывает Flexible I/O Tester и обрабатывает его вывод, предоставляя простой для просмотра и интерпретации комплексный результат тестирования.

systemd-analyze

$ systemd-analyze plot > boot.svg

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

dd

Утилита dd может быть использована для измерения как скорости чтения, так и скорости записи. Этот метод зависит от выравнивания разделов! Другими словами, если разделы выровнены неправильно, это скажется на результатах тестирования, поскольку оно выполняется в примонтированной файловой системе.

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

На разделе, имеющем хотя бы 1,1 ГБ свободного места, запишите тестовый файл, чтобы измерить скорость записи и создать файл для дальнейшего измерения скорости чтения:

$ dd if=/dev/zero of=/путь/к/диску/tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress
1024+0 records in
1024+0 records out
v bytes (w MB, x MiB) copied, y s, z MB/s
Совет На странице dd-benchmark есть объяснение, почему необходимо использовать sync и другие связанные с этим опции dd.

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

# echo 3 > /proc/sys/vm/drop_caches
$ dd if=/путь/к/диску/tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in
1024+0 records out
v bytes (w MB, x MiB) copied, y s, z MB/s

Теперь, когда последний файл попал в кэш, повторите команду, чтобы увидеть скорость работы кэша:

$ dd if=/путь/к/диску/tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in
1024+0 records out
v bytes (w MB, x MiB) copied, y s, z MB/s
Примечание Для точной оценки скорости чтения буфера необходимо выполнить эту команду 4-5 раз и вручную усреднить результаты.

Наконец, удалите временный файл

$ rm /путь/к/диску/tempfile
Примечание Некоторые контроллеры SSD имеют аппаратную реализацию сжатия, что может исказить результаты бенчмарков. Смотрите https://www.pugetsystems.com/labs/articles/SSDs-Advertised-vs-Actual-Performance-179/

dcfldd

Dcfldd не выводит среднюю скорость в МБ/с, как это делает старый добрый dd, но с помощью time это можно обойти.

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

# time dcfldd if=/dev/zero of=/dev/sdX bs=4M
18944 blocks (75776Mb) written.dcfldd:: No space left of device
real     16m17.033s
user     0m0.377s
sys      0m51.160s

Теперь можно рассчитать скорость в МБ/с, разделив результат команды dcfldd на время в секундах. Для данного примера: 75776Mb / (16.4 min * 60) = 77.0 MB/s.

7z

Команда 7z benchmark может использоваться для измерения скорости процессора в MIPS, а также для проверки оперативной памяти на наличие ошибок. Просто установите p7zip и выполните приведённую ниже команду. Более подробную информацию можно найти здесь: [1].

$ 7z b

peakperf

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

Можно рассчитать производительность (измеряемую в GFLOP/s), которую вы должны получить на своём процессоре (смотрите [2]), и сравнить её с производительностью, которую выдаёт peakperf. Если оба значения одинаковы (или очень близки друг к другу), то ваш процессор работает как положено.

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

Программные комплексы

Bonnie++

bonnie++ — это переписанный на C++ набор бенчмарков Bonnie, предназначенный для проведения нескольких тестов производительности жёсткого диска и файловой системы.

Важно По умолчанию bonnie++ записывает на диск как минимум два объёма оперативной памяти. Если вы не хотите тратить ресурс своего SSD, используйте нестандартные опции.
Примечание Оригинальный набор Bonnie, похоже, не был выпущен под GPL или другой совместимой лицензией.

Смотрите также:

IOzone

IOzone полезна для проведения широкого анализа файловой системы компьютерной платформы поставщика.

Эта программа доступна в AUR: iozoneAUR.

Смотрите также тему на форуме: iozone to evaluate I/O schedulers... results NOT what you'd expect!.

HardInfo

hardinfo-gitAUR[ссылка недействительна: package not found] может собирать информацию об оборудовании и операционной системе, проводить тестирование производительности и генерировать отчёты в формате HTML или обычного текста. HardInfo выполняет бенчмарки CPU и FPU и имеет очень чистый интерфейс на базе GTK.

Phoronix Test Suite

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

Phoronix Test Suite основан на обширном тестировании и внутренних инструментах, разработанных Phoronix.com с 2004 года при поддержке ведущих поставщиков компьютерного оборудования и программного обеспечения. Это программное обеспечение с открытым исходным кодом и лицензировано по лицензии GNU GPLv3.

Изначально разработанный для автоматизированного тестирования Linux, Phoronix Test Suite теперь поддерживает операционные системы OpenSolaris, Apple macOS, Microsoft Windows и BSD. Phoronix Test Suite состоит из лёгкого ядра (pts-core) с бенчмарками, состоящими из XML-профилей и соответствующих ресурсных скриптов. Процесс от установки бенчмарка до собственно тестирования и анализа важных аппаратных и программных компонентов в значительной степени автоматизирован и полностью повторяем; у пользователя запрашивается только подтверждение действий.

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

Установить Phoronix Test Suite можно с помощью пакета phoronix-test-suiteAUR. Разрабатываемая версия доступна в пакете phoronix-test-suite-gitAUR.

S

S, I/O Benchmark Suite, представляет собой небольшую коллекцию скриптов для измерения производительности ввода-вывода хранилища.

Разработчиком является algodev[устаревшая ссылка 2024-12-14 ⓘ] — команда, стоящая за планировщиком BFQ.

Скачайте или клонируйте проект, установите его зависимости и запустите его от имени root (привилегии необходимы для изменения дискового планировщика).

s-tui

s-tui — это эстетически приятный и полезный интерфейс в стиле curses, который показывает графики частоты процессора, использования, температуры, энергопотребления, а также имеет встроенный стресс-тестер.

Флеш-накопители

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

Следующий пример тестирует 10-мегабайтный файл с размером записи 4k:

$ iozone -e -I -a -s 10M -r 4k -i 0 -i 1 -i 2
...

                                                                random   random
              kB  reclen    write  rewrite    read    reread    read     write
           10240       4      661      649     5802     5822     3892      624
Примечание Результаты тестирования указываются в КБ/с.

Графика

Basemark GPU

Basemark GPU — это инструмент для анализа и измерения производительности графических API (OpenGL 4.5, OpenGL ES 3.1, Vulkan и Microsoft DirectX 12) на мобильных и настольных платформах. Basemark GPU нацелен как на настольные, так и на мобильные платформы, предоставляя режимы высокого и среднего качества. Режим высокого качества предназначен для самых современных рабочих нагрузок на настольных компьютерах, а режим среднего качества — для эквивалентных мобильных рабочих нагрузок.

Если вы используете GPU AMD и у вас одновременно установлено несколько реализаций vulkan, на странице тестирования вы увидите их как отдельные GPU в выпадающем списке Graphics Device.

Basemark GPU доступен в пакете basemarkAUR.

Blender-benchmark

Blender-benchmark соберёт информацию о системе, такую как операционная система, оперативная память, видеокарты, модель процессора, а также информацию о производительности системы во время выполнения бенчмарка. После этого пользователь сможет поделиться результатом онлайн на платформе Blender Open Data или сохранить данные локально.

Blender-benchmark доступен в пакете blender-benchmarkAUR.

GFXBench

GFXBench — это высококлассный графический бенчмарк, измеряющий производительность мобильных и настольных компьютеров с графическими функциями нового поколения на всех платформах. Как настоящий кросс-API бенчмарк, GFXBench поддерживает все основные API, в том числе OpenGL, OpenGL ES, Vulkan, Metal, DirectX/Direct3D и DX12.

Тесты API Vulkan в настоящее время находятся в разработке и доступны только для корпоративных партнёров.

GFXBench доступен в пакете gfxbenchAUR.

glmark2

glmark2 — тестирование OpenGL 2.0 и ES 2.0.

glmark2 доступен в пакете glmark2.

glxgears

glxgears — это популярный тест OpenGL, который выполняет рендеринг очень простой OpenGL-картинки и выводит частоту кадров. Хотя glxgears может быть полезен как тест возможностей прямого рендеринга графического драйвера, это устаревший инструмент, который не отражает текущее состояние графики GNU/Linux и общих возможностей OpenGL. Он тестирует только небольшой сегмент возможностей OpenGL, которые могут быть использованы в игре. Увеличение производительности, отмеченное в glxgears, не обязательно будет реализовано в конкретной игре. Более подробную информацию смотрите здесь.

glxgears доступен в пакетах mesa-utils и lib32-mesa-utils (для multilib).

GpuTest

GpuTest — это кроссплатформенный (Windows, Linux и Max OS X) стресс-тест GPU и бенчмарк OpenGL. GpuTest поставляется с несколькими тестами GPU, включая некоторые популярные в мире Windows (FurMark или TessMark).

GpuTest доступен в пакете gputestAUR.

intel-gpu-tools

intel-gpu-tools даёт вам некоторую информацию о встроенном GPU. Это может быть весьма полезно при диагностике проблем с ускорением GPU.

Для использования установите пакет intel-gpu-tools.

MangoHud

MangoHud — это комплексный оверлей для мониторинга производительности системы в приложениях Vulkan и OpenGL.

Установка и настройка описана в статье MangoHud.

Unigine Engine

Unigine corp. выпустила несколько современных бенчмарков OpenGL на базе своего графического движка с такими возможностями, как:

  • Перпиксельное динамическое освещение
  • Normal & parallax occlusion mapping
  • 64-битный HDR-рендеринг
  • Объёмный туман и свет
  • Мощные системы частиц: огонь, дым, взрывы
  • Расширяемый набор шейдеров (GLSL / HLSL)
  • Постобработка: глубина резкости, преломление, свечение, размытие, цветокоррекция и многое другое.

Бенчмарки Unigine недавно нашли применение среди тех, кто стремится разогнать свои системы. Heaven особенно часто используется для начального тестирования стабильности разгона.

Эти бенчмарки можно найти в AUR:

vkmark

vkmark — это расширяемый набор бенчмарков Vulkan с целевыми, настраиваемыми сценами.

vkmark доступен в пакете vkmark.

Смотрите также