Benchmarking (Русский)

From ArchWiki

Tango-preferences-desktop-locale-modified.pngПеревод этой статьи или раздела не отражает оригинальное содержание.Tango-preferences-desktop-locale-modified.png

Причина: Невычитанная копипаста из переводчика DeepL. (Discuss)

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

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

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

Standalone tools

UnixBench

Install unixbenchAUR, для запуска эталонной программы ubench.

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

interbench

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

Tip: При тщательном бенчмаркинге можно сравнивать различное оборудование.

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

См. также:

ttcp

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

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

iperf

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

Можно установить iperf, или же другая версия 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, который выдает min/max/ave чтения вместе со средним временем доступа и красивым графическим отображением. Этот метод не зависит от выравнивания разделов!

# gnome-disks

Пользователи должны будут перейти через графический интерфейс к кнопке эталона (Меню действий... > Оценить производительность диска...). Example

KDiskMark

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

systemd-analyze

$ systemd-analyze plot > boot.svg

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

dd

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

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

Во-первых, введите каталог на SSD с не менее 1,1 ГБ свободного места (и тот, который, очевидно, дает вашему пользователю права wrx) и запишите тестовый файл, чтобы измерить скорость записи и дать устройству что-то прочитать:

$ dd if=/dev/zero of=/path/to/SSD/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
Tip: See dd-benchmark for an explanation on the requirement to sync and further related dd options.

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

# 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++ версия набора бенчмарков original Bonnie, предназначенная для проведения нескольких тестов производительности жесткого диска и файловой системы.

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

См. также:

IOzone

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

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

См. также статью на BBS: iozone для оценки планировщиков ввода-вывода... результаты не те, что вы ожидали!.

HardInfo

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

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

Этот пакет может быть installed с помощью пакета phoronix-test-suiteAUR. Существует также версия для разработки, доступная в phoronix-test-suite-gitAUR.

S

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

Он был разработан algodev, командой, стоящей за планировщиком BFQ.

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

s-tui

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

Flash media

Характеристики производительности могут быть измерены количественно с помощью 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. glxgears тестирует только небольшой сегмент возможностей 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.

MangoHUD

MangoHUD - это комплексный оверлей для мониторинга производительности системы в приложениях Vulkan и OpenGL. Оверлей может быть настроен на включение такой информации, как температура GPU и информация о сборке Wine, а также на запись метрик для бенчмарков. Он обладает большими возможностями, чем традиционные FPS оверлеи[устаревшая ссылка 2022-09-17] для Linux.

Установите mangohudAUR. Опционально установите goverlayAUR, который позволяет графически настраивать оверлей с предварительным просмотром.

Unigine Engine

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

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

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

Эти эталоны можно найти в AUR:

vkmark

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

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

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