- Программы для бенчмарка CPU в Linux
- Бенчмарк в sysbench
- Бенчмарк в phoronix-test-suite
- Бенчмарки для Linux-серверов: 5 открытых инструментов
- Sysbench
- UnixBench
- Phoronix Test Suite
- Vdbench
- IOzone
- Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга
- Iometer
- vpsbench
- HammerDB
- Тест производительности Linux
- Что такое Phoronix Test Suite?
- Доступные тесты производительности
- Тесты общей производительности системы (System):
- Тесты производительности процессора (Processor):
- Тесты производительности памяти (Memory):
- Тесты производительности дисковой подсистемы (Disk):
- Тесты производительности видеокарты (Graphics):
- Тест производительности Linux
- 1. Установка Phoronix Test Suite
- 2. Подключение учётной записи
- 3. Просмотр доступных бенчмарков
- 4. Установка тестов
- 5. Запуск тестов
- 6. Просмотр результатов тестов
- 7. Работа с сайтом openbenchmarking.org
- 8. Настройка сетевого доступа для тестов
- 9. Сервер тестирования компьютеров в локальной сети
- Выводы
Программы для бенчмарка CPU в Linux
Бенчмарк — это измерение максимальной производительности компьютера, которое выражают в условных очках. Благодаря этому можно сравнить производительность разных компьютеров, либо одного и того же компьютера после, например, разгона или андерволтинга.
Бенчмарк и стресс-тест это не одно и то же. И при бенчмарке и при стресс-тесте система получает полную нагрузку. Но главная цель бенчмаркинга это оценка производительности, а главная цель стресс-теста это проверка, сможет ли система функционировать на пределе своей загруженности, либо определить этот предел. Хотя, на самом деле, некоторые программы совмещают в себе обе функции.
Бенчмарк может выполняться дли системы в целом, либо для отдельных её составляющих: для центрального процессора, видеокарты, системы ввода-вывода.
В Линукс имеется несколько программ для оценки производительности центрального процессора, например: sysbench, stress-ng и phoronix-test-suite. Из них stress-ng в первую очередь выполняет функции стресс-теста, но она выводит получаемые метрики, поэтому вполне пригодна для оценки и сравнения производительности системы.
Бенчмарк в sysbench
sysbench — это утилита командной строки. Она создана для оценки производительности серверов с сильно нагруженными СУБД, но подходит и для проведения бенчмарков обычных систем.
Установка в Ubuntu, Linux Mint, Debian, Kali Linux:
Встроенные в программу тесты:
Для запуска теста производительности центрального процессора:
Обратите внимание как запускается программа: в начале идёт название теста, затем опции (в первом примере их нет), а затем команда.
Для программы установлено два придела выполнения:
В зависимости от того, что наступит первым, программа завершит свою работу или после 10000 событий, либо после 10 секунд.
Современные процессоры очень производительные и если программа завершилась очень быстро, то данные могут быть искажены. Например, при оценки производительности процессора играет роль, к примеру, троттлинг (сброс частот). Троттлинг начинается из-за перегрева или превышения TDP. Эти эффекты наблюдаются только на длительных дистанциях работы процессора. Если, к примеру, тест завершился за секунду и вы получили n обработанных операций, это не означает, что процессор за 60 секунд выполнит 60 * n операций, поскольку он будет сбрасывать частоты из-за перегрева и выхода за пределы установленного в TDP рассеивания тепла.
Для более длительного выполнения теста используются опции —cpu-max-prime и —time. Первая устанавливает максимальное количество выполненных операций, а вторая — максимальное время проведения бенчмарка. При одновременном использовании опций приоритет имеет —time.
Современные центральные процессоры являются многоядерными и многопотоковыми:
По умолчанию sysbench запускает в один поток. Поэтому если вы хотите задействовать все ядра вашего процессора, используйте опцию —threads. У меня 6 физических и 12 логических ядер центрального процессора, поэтому я буду использовать значение 12, чтобы работали все процессоры.
При использовании опции —cpu-max-prime, чем меньше время завершения программы, тем производительныее центральный процессор:
Программа завершила работу слишком быстро — за 10 секунд вряд ли процессор успел подвергнуться серьёзному троттлингу. Поэтому с такими значениями тест подходит для оценки пиковой производительности на короткой дистанции.
CPU speed events per second означает количество выполненный в центральном процессоре операций за секунду — чем выше значение, тем производительнее система.
General statistics total time означает общее время выполнения операций.
General statistics total number of events означает общее количество выполненный событий.
Если система завершает работу слишком быстро, можно увеличить значение, например, до двухсот тысяч событий:
Ещё один способ проверки троттлинга и оценки производительности процессора под длительной нагрузкой, это установка времени выполнении, в примере ниже установлено время в 300 секунд.
У меня при использовании опций —time и —cpu-max-prime CPU speed events per second различается в десятки раз — видимо или какой-то баг в программе, либо программа считает по каким-то другим правилам.
Бенчмарк в phoronix-test-suite
Запустите – в первый раз нужно будет принять лицензионное соглашение, так программа спросит разрешение на отправку анонимной статистики:
Предыдущая команда выведит список доступных бенчмарков.
Доступные наборы в версии Phoronix Test Suite v8.0.1
Звёздочкой отмечены частично поддерживаемые наборы.
Для запуска оценки производительности центрального процессора выполните:
Обратите внимание, что pts/cpu и другие бенчмарки занимают несколько гигабайт дискового пространства. К примеру, pts/cpu загрузит около 3 Гб данных и будет использовать примерно 7 Гб дискового пространства (в домашней директории пользователя).
О том, как контролировать текущую частоту и температуру процессора в Linux смотрите здесь.
Бенчмарки для Linux-серверов: 5 открытых инструментов
Сегодня мы расскажем об открытых инструментах для оценки производительности процессоров, памяти, файловых систем и систем хранения данных.
В список вошли утилиты, предлагаемые резидентами GitHub и участниками тематических тредов на Reddit, — Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone.
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
Этот комплекс тестов разработан авторами веб-ресурса Phoronix, на котором публикуются новости о дистрибутивах GNU/Linux. Впервые Test Suite представили в 2008 году — тогда он включал 23 различных теста. Позже разработчики запустили облачный сервис OpenBenchmarking.org, на котором пользователи могли публиковать собственные тестовые сценарии. Сегодня на нем представлено около 60 бенчмарк-наборов, в том числе связанных с машинным обучением и технологией ray-tracing.
Наборы специализированных скриптов позволяют протестировать отдельные компоненты системы. С их помощью можно оценить время компиляции ядра и кодирования видеофайлов, скорость сжатия архиваторов и др. Для запуска тестов достаточно написать соответствующую команду в консоли. Например, эта команда инициирует оценку производительности 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-провайдер
Короткий ликбез: как устроена ЭЦП
Справочная: как работает закон о персональных данных
Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга
Мы в 1cloud.ru подготовили подборку инструментов и скриптов для оценки производительности процессоров, СХД и памяти на Linux-машинах: Iometer, DD, vpsbench, HammerDB и 7-Zip.
Другие наши подборки с бенчмарками:
Iometer
Это — бенчмарк для оценки производительности дисковой и сетевой подсистем. Подходит для работы как с одним сервером, так и целым кластером. Iometer представили инженеры Intel в 1998 году. В 2001-м корпорация передала исходники некоммерческой организации Open Source Development Labs (OSDL) по лицензии Intel Open Source License. С 2003 года поддержкой инструмента занимается группа энтузиастов — проект зарегистрирован на SourceForge.net.
Iometer состоит из генератора нагрузки dynamo и графического интерфейса. Правда, последний доступен только под Windows. Что касается генератора, то он позволяет имитировать нагрузку сторонних приложений — для этого создаются специальные тестовые шаблоны.
Бенчмарки показывают: пропускную способность, операции в секунду, латентность и загрузку процессора. Вычисляются не только средние значения величин, но и мин/макс.
Несмотря на то что последняя стабильная версия инструмента вышла в 2014 году, его до сих пор используют в Broadcom и Dell. Однако возраст системы все же сказывается. Во-первых, её интерфейс устарел и не менялся с 1998 года. Во-вторых, инструмент порой выводит не совсем адекватные результаты на массивах all-flash.
vpsbench
Простой скрипт для оценки производительности VPS. Распространяется по лицензии MIT. Вот пример его работы, приведенный в официальном репозитории на GitHub:
Утилита отображает количество ядер, частоту процессора, объемы задействованной памяти. Для оценки производительности дисков vpsbench выполняет последовательное и произвольное чтение/запись. Несмотря на то что утилита довольно старая (обновление на GitHub сделано около четырех лет назад) ее использует множество облачных провайдеров и ИТ-компаний.
HammerDB
Один из самых популярных открытых бенчмарков для нагрузочного тестирования баз данных. Поддержкой инструмента занимается некоммерческая организация TPC — Transaction Processing Performance Council. Её цель — разработка стандартов для БД-бенчмарков.
HammerDB создает тестовую схему БД, наполняет её данными и симулирует нагрузку нескольких виртуальных пользователей. Нагрузкой могут служить как транзакционные, так и аналитические операции. Поддерживает: Oracle Database, SQL Server, IBM Db2, MySQL, MariaDB, PostgreSQL и Redis.
Вокруг HammerDB сформировалось обширное комьюнити. Утилиту используют компании из 180 стран мира. Среди них: Intel, Dell, Lenovo, Red Hat и многие другие. Если вы хотите изучить возможности утилиты самостоятельно — можете начать с официальных гайдов.
Фото — lost places — CC BY
Этот архиватор имеет встроенный бенчмарк для тестирования скорости процессоров при сжатии определенного количества файлов. Также он подойдет для проверки RAM на ошибки. Для тестов используется алгоритм LZMA (Lempel–Ziv–Markov chain Algorithm). Он основан на схеме сжатия данных по словарю. Например, чтобы запустить бенчмарк с одним потоком и 64-мегабайтным словарем достаточно прописать команду:
Результат программа предоставит в формате MIPS (million instructions per second), что можно назвать недостатком. Этот параметр подходит для сравнения быстродействия процессоров одинаковой архитектуры, но в случае с различающимися архитектурами его применимость ограничена.
Инструмент командной строки, конвертирующий и копирующий файлы. Но его можно использовать для проведения простых I/O-тестов на СХД. Из коробки запускается практически на любой системе GNU/Linux.
На wiki-страничке приведена команда для оценки производительности диска при последовательной записи 1024-байтных блоков:
Также стоит отметить, что DD можно использовать в качестве простого CPU-бенчмарка. Правда, для этого понадобится дополнительная программа, требующая ресурсоемких вычислений. Например, утилита для расчета значений хеш-сумм md5sum.
Команда выше покажет, насколько быстро (Мбайт/с) система обработает длинную числовую последовательность. Хотя эксперты говорят, что эта команда подойдет лишь для грубой оценки производительности. Также важно помнить, что DD позволяет производить низкоуровневые операции на жёстких дисках. Поэтому работать с утилитой нужно осторожно, чтобы не потерять часть данных (название DD иногда в шутку расшифровывают, как disk destroyer).
О чем мы пишем в наших блогах и социальных сетях:
Исследование: Linux — все еще самая популярная ОС в облаке
В Open Invention Network больше трех тысяч лицензиатов — что это значит для открытого ПО
Как обезопасить Linux-систему: 10 советов
Минимизация рисков: как не потерять ваши данные
Книги для тех, кто уже занимается системным администрированием или только планирует начать
Необычные доменные зоны для вашего проекта
Тест производительности Linux
Пользователи редко задумываются о конфигурации и производительности используемого ими персонального компьютера. Обычно интерес к этой теме возникает в том случае, если пользователь увлечён сферой информационных технологий или если его не устраивает текущая производительность системы.
Однако, этот вопрос весьма важен, особенно если рабочая станция — ваше устройство, используемое для развлечений, отдыха и работы. В этой статье мы разберемся как выполнить тест производительности Linux и рассмотрим один из инструментов тестирования производительности — Phoronix Test Suite.
Что такое Phoronix Test Suite?
Данный пакет — открытое программное обеспечение, используемое для автоматического тестирования комплектующих системы с помощью огромного набора бенчмарков. С данным ПО тесно связан сайт openbenchmarking.org, позволяющий сохранять и вести свою базу результатов тестов, а также делиться своими достижениями с другими.
С помощью Phoronix Test Suite вы можете найти узкое место в своей конфигурации компьютера, сравнить вашу систему с аналогичными системами других пользователей, оценить общую производительность или производительность конкретных узлов ПК. Для всех этих целей пакет предлагает широкий выбор тестов, разделённый на несколько категорий:
Рассмотрим каждую категорию отдельно, составив список интересных бенчмарков.
Доступные тесты производительности
Тесты общей производительности системы (System):
Тесты производительности процессора (Processor):
Тесты производительности памяти (Memory):
Тесты производительности дисковой подсистемы (Disk):
Тесты производительности видеокарты (Graphics):
Тест производительности Linux
1. Установка Phoronix Test Suite
В репозиториях операционных систем семейства Linux обычно содержится устаревшая версия пакета. Поэтому, в первую очередь скачиваем свежую версию дистрибутива по адресу: https://www.phoronix-test-suite.com/?k=downloads.
Далее предлагаем последовательность установки для операционной системы Ubuntu.
Открываем командный интерпретатор bash и выполняем следующие команды:
sudo apt install gdebi-core
Пакет, позволяющий устанавливать программное обеспечение из пакетов *.deb, установлен. Затем устанавливаем скачанную нами версию тестового программного обеспечения:
sudo gdebi phoronix-test-suite_9.4.0_all.deb
Данную команду надо выполнять из папки, в которой находится скачанный дистрибутив Phoronix Test Suite.
2. Подключение учётной записи
Далее рекомендуем вам на сайте openbenchmarking.org, сохраняющем результаты тестов с использованием Phoronix Test Suite, создать свою учётную запись. После этого подключаем вашу учётную запись с помощью команды:
Вводим свой логин и пароль.
На этом установка Phoronix Test Suite завершена.
3. Просмотр доступных бенчмарков
Посмотреть доступные бенчмарки можно с помощью команды:
sudo phoronix-test-suite list-all-tests
Просмотреть установленные тесты можно с помощью команды:
sudo phoronix-test-suite list-installed-tests
Просмотреть неустановленные тесты можно с помощью команды:
sudo phoronix-test-suite list-not-installed-tests
4. Установка тестов
Устанавливаются нужные вам тесты с помощью команды:
sudo phoronix-test-suite install [ имя теста ]
sudo phoronix-test-suite install build-gcc
В случае некорректной установки выбранного бенчмарка можно использовать для удаления теста команду:
sudo phoronix-test-suite remove-installed-test [ имя теста ]
sudo phoronix-test-suite remove-installed-test build-gcc
Для того, чтобы выявить ошибки в процессе установки, необходимо воспользоваться командой:
sudo ph oronix-test-suite debug-install [ имя теста ]
sudo phoronix-test-suite debug-install build-gcc
5. Запуск тестов
Запуск чтобы запустить конкретный тест производительности linux из состава пакета выполните:
sudo phoronix-test-suite run [ имя теста ]
sudo phoronix-test-suite run pybench
После запуска Phoronix Test Suite спрашивает, сохранить результаты или нет. Выбираем Y. В следующем запросе нужно ввести имя файла результатов теста, например, test-28-02-2020-01. Затем тест запрашивает уникальное имя теста (конфигурации теста). Последним запрашивается описание тестовой конфигурации (можно оставить по умолчанию).
После выполнения теста выводится предложение просмотреть результат в браузере и загрузить результат на сайт openbenchmarking.org.
Результат в браузере выглядит следующим образом
Запуск нескольких тестов одновременно производится командой:
sudo phoronix-test-suite run [ имя теста ] [ имя теста ] [ имя теста ] … [ имя теста ]
sudo phoronix-test-suite run scimark2 pybench
Запуск теста с отслеживанием ошибок производится командой:
sudo phoronix-test-suite debug-run [ имя теста ]
sudo phoronix-test-suite debug-run scimark2
6. Просмотр результатов тестов
Отобразить на экране список сохранённых результатов тестов Linux можно с помощью команды:
sudo phoronix-test-suite list-saved-results
Просмотреть конкретный результат можно с помощью команды:
sudo phoronix-test-suite show-result [ saved name ]
sudo phoronix-test-suite show-result 2002279-FIRE-TEST26009
Удалить результат можно с помощью команды:
sudo phoronix-test-suite remove-result [ saved name ]
sudo phoronix-test-suite remove-result 2002279-FIRE-TEST26009
Переименовать файл, содержащий результаты, можно следующей командой:
sudo phoronix-test-suite rename-result-file [ saved name ]
sudo phoronix-test-suite rename-result-file test-26-02-2020-02
Команда запрашивает новое имя файла:
Сохранить результаты в формате pdf можно с помощью команды:
sudo phoronix-test-suite result-file-to-pdf [ saved name ]
sudo phoronix-test-suite result-file-to-pdf test-28-02-2020-01
Объединить результаты из разных файлов в один можно с помощью команды:
sudo phoronix-test-suite merge-results [ saved name ] [ saved name ] … [ saved name ]
sudo phoronix-test-suite merge-results test-26-02-2020-02 test-28-02-2020-01
При этом имя для объединённого результата программа выбирает сама, отдельные старые результаты тоже сохраняются.
Внимание! При выполнении этой команды ссылка для просмотра результата в браузере у меня получалась нерабочей, но в дальнейшем результат было можно просмотреть с помощью команды
sudo phoronix-test-suite show-result [ saved name ].
7. Работа с сайтом openbenchmarking.org
Вставка результата в базу сайта производится следующим образом:
sudo phoronix-test-suite upload-result [ saved name ]
sudo phoronix-test-suite upload-result test-28-02-2020-01
Загрузить конкретный результат текущего пользователя с сайта на ПК можно с помощью команды:
sudo phoronix-test-suite clone-result [ OpenBenchmarking ID test ]
sudo phoronix-test-suite clone-result 2002279-FIRE-TEST26009
Посмотреть загруженные с данного IP на сайт результаты тестов можно с помощью команды:
sudo phoronix-test-suite openbenchmarking-uploads
Также посмотреть результаты тестов можно непосредственно в браузере на сайте openbenchmarking.org.
Для того, чтобы сформировать выборку тестов, необходимо установить флажки с названием файлов результатов и нажать на ссылку Compare Selected Results.
Результат сформированной выборки будет выглядеть так:
8. Настройка сетевого доступа для тестов
Следующая команда показывает параметры сетевых настроек для пакета:
sudo phoronix-test-suite network-info
Настроить параметры прокси-сервера для доступа к базам тестов в Интернет можно с помощью команды:
sudo phoronix-test-suite network-setup
9. Сервер тестирования компьютеров в локальной сети
Кроме того, пакет Phoronix Test Suite содержит сервер удалённого тестирования Phoromatic, с помощью которого можно организовать централизованное тестирование и хранение результатов тестов в локальной сети. Подробное рассмотрение данного сервера выходит за рамки нашей статьи.
Выводы
В статье мы рассмотрели как оценить производительность Linux и как пользоваться Phoronix Test Suite. Этот пакет содержит огромный выбор тестов на любой вкус. Нами порекомендованы некоторые из них для всестороннего тестирования персонального компьютера. Также были рассмотрены особенности работы с программой в командной оболочке. Было уделено внимание выгрузке результатов на сайт, комбинированию и просмотру результатов.
Теперь вы тоже можете присоединиться к сообществу тестеров Phoronix Test Suite. Делитесь своими результатами тестов в комментариях!