Aloha всем хабравчанам! Я Влад, системный администратор Cloud4Y. Хочу рассказать, как и зачем мы используем продукт Phoronix Test Suite, а также каким образом можно точно и легко определить реальную (не заявленную) производительность оборудования, предоставленного провайдером облачных услуг.
Во время выбора площадки для размещения инфраструктуры клиенты часто спрашивают, где у Cloud4Y находятся ЦОДы, какая сетевая инфраструктура, виртуализация, SLA и т. д. Это правильно, но важно обращать внимание и на аппаратный комплекс дата-центра. Как можно оценить его эффективность? Хороший вариант — с помощью Phoronix Test Suite.
Что такое Phoronix Test Suite
Phoronix Test Suite (PTS) — это свободно распространяемое (GNU GPLv3) кроссплаформенное ПО для проведения тестов – бенчмаркинга. PTS умеет проводить тесты в автоматическом режиме и доступен на Windows, Linux, macOS, Solaris и BSD. Phoronix Test Suite комплексно оценивает производительность компонентов системы, так как включает в себя более 600 различных тестов, начиная от производительности процессора и заканчивая тестами приложений (например, Apache или NGINX).
У PTS плотная интеграция с сайтом OpenBenchmarking.org, туда можно выгружать результаты, сохранять их в личной базе данных, делиться конфигурациями тестов. Согласно базе тестов OpenBenchmarking.org, различают 6 типов тестов:
Disk – тестирование дисковой подсистемы. Например, Flexible IO Tester – известный как fio, популярный тестер I/O.
Graphics – тестирование графического адаптера. Например, Unigine Heaven — тест вычисляет среднюю частоту кадров в Heaven для движка Unigine. Этот движок чрезвычайно требователен к видеокарте системы.
Memory – тестирование оперативной памяти. Например, Stream – является самым популярным тестом для проверки производительности оперативной памяти.
Network – тестирование сетевой производительности системы. Например, Loopback TCP Network Performance – тест проверяет, насколько эффективно работает сетевой стек TCP/IP.
Processor – тестирование эффективности процессора. Например, x264 — тест производительности при кодировании образца файла с помощью x264 кодека, запущенного на ЦП (OpenCL отключен).
System – тестирование общей производительности системы. Например, Apache HTTP Server — тест веб-сервера Apache HTTPD с помощью программы на Golang’e «Bombardier».
Важно: хотя phoronix можно использовать на различных ОС, тесты не всегда поддерживают все платформы. Поэтому перед тестированием рекомендую внимательно ознакомиться с выбранным тестом. Проверить совместимость можно двумя способами:
Первый: открыть на сайте OpenBenchmarking.org вкладку Tests и, найдя нужный тест, увидеть список поддерживаемых ОС.
![](https://habrastorage.org/getpro/habr/upload_files/154/235/fbf/154235fbf362ca30087726f59074abc1.png)
Второй: открыв тест, посмотреть список поддерживаемых ОС.
![](https://habrastorage.org/getpro/habr/upload_files/d85/35e/966/d8535e966958c3483a73556db6bd2fa1.png)
Теперь, когда мы познакомились с продуктом, можно перейти к работе с ним. Погнали!
Установка Phoronix Test Suite
Рассмотрим установку PTS на операционные системы Linux и Windows. В качестве OC Linux используется Ubuntu 20.04 LTS, OC Windows – Windows Server 2019.
Для установки на Ubuntu 20.04
обновляем систему
sudo apt-get update && sudo apt-get upgrade
устанавливаем необходимые пакеты
sudo apt install php7.4-gd curl git sqlite3 bzip2 php-cli php-xml
скачиваем дистрибутив PTS с официального github phoronix
git clone https://github.com/phoronix-test-suite/phoronix-test-suite
переходим в каталог с phoronix-test-suite и устанавливаем PTS путём запуска скрипта
cd phoronix-test-suite && sudo ./install-sh
Если у вас Windows Server 2019, делаем так:
Обновляем систему с помощью Центра обновления Windows.
Скачиваем дистрибутив PTS с официального github.
Деархивируем скачанный файл в корень диска С. Открываем консоль с правами администратора, переходим в папку с PTS .
cd C:\phoronix-test-suite
Запускаем скрипт phoronix-test-suite.bat, немного подождём, но за напитками пока рано – иногда нужно прожатие next-next-next. Для начала работы программы наберём phoronix-test-suite
в командной строке (командная строка должна изменить свой внешний вид).
Тестирование
Установили? Отлично, теперь тестирование. Все команды PTS аналогичны для Windows и Linux дистрибутивов. Мы будем рассматривать работу в командной строке Linux. Тест можно запустить двумя способами, простым и сложным. Сложный путь – сначала необходимо установить тест (установится сам тест + зависимости)
phoronix-test-suite install < имя теста >
после чего запустить тест
phoronix-test-suite run < имя теста >
но я предлагаю более простой вариант. Используем для запуска теста команду
phoronix-test-suite benchmark < имя теста >
после чего Phoronix установит тест, зависимости и запустит тестирование.
Давайте попробуем запустить тест hmmer. Наберём в консоли
phoronix-test-suite benchmark hmmer
Произойдёт загрузка необходимых компонентов, после чего мы увидим характеристики машины, на которой запускается тест. Нам будут задано несколько вопросов.
![](https://habrastorage.org/getpro/habr/upload_files/bde/d7b/c21/bded7bc21bf347eb63a4b46fafba1900.png)
Phoronix Test Suite предлагает сохранить результаты. Давайте выберем Y. Следующий вопрос о имени файла результатов тестирования, вводим hmmer-test-result. Ещё один вопрос — про имя конфигурации теста. Оно должно быть уникальным, но можно оставить по умолчанию, просто нажав Enter (Phoronix автоматически сформирует имя). Далее вопрос о описании конфигурации – давайте оставим по умолчанию, нажав Enter.
![](https://habrastorage.org/getpro/habr/upload_files/cf5/4f4/be7/cf54f4be72c6abb14722acf8a39ad2e7.png)
Далее запустится тест. Терпеливо ждём результаты, а пока их нет, давайте познакомимся с полезными командами Phoronix Test Suite:
phoronix-test-suite help – покажет все доступные команды.
phoronix-test-suite list-all-tests – поможет увидеть все доступные тесты для текущей машины.
phoronix-test-suite list-all-tests | grep Processor для Linux, или .\phoronix-test-suite list-all-tests | Select-String -Pattern Processor для Windows — видим все тесты для процессора.
phoronix-test-suite list-installed-tests – тесты, которые установлены на машине.
phoronix-test-suite list-recommended-tests – список рекомендованных тестов для вашей ОС.
phoronix-test-suite info <name_test> — позволит посмотреть техническую информацию о тесте.
phoronix-test-suite benchmark <test1> <test2> <test3> — позволит установить (если необходимо) и запустить подряд тесты test1, test2, test3.
А вот и тест завершился, вернёмся к результатам hmmer.
![](https://habrastorage.org/getpro/habr/upload_files/f07/770/25f/f0777025fa58c02e3e6c4731b23c2f6e.png)
Ещё пара вопросов от Phoronix Test Suite после завершения теста. Хотим увидеть результат теста в консоль? /Y. Хотим загрузить результат на OpenBenchmarking.org? /Y. Хотим добавить к результату техническую информацию о машине? /Y. А с помощью полученной ссылки можно ознакомиться с результатами в браузере.
Слишком много вопросов? От них можно избавиться, добавив в параметры выполнение всех опций теста. Введем в командной строке:
phoronix-test-suite batch-setup
Например, так:
![](https://habrastorage.org/getpro/habr/upload_files/a08/77b/caa/a0877bcaa69374a3ab95e2ffeba9bd8c.png)
Внимание! Чтобы настройки batch применялись, необходимо производить запуск тестов командой batch-benchmark вместо benchmark, в остальном синтаксис сохраняется. Например, phoronix-test-suite batch-benchmark hmmer
.
Еще одной удобной особенностью Phoronix Test Suite является возможность записывать данные с различных датчиков системы. Например, частоту ядер процессора, утилизацию процессора и др. Чтобы воспользоваться этим функционалом, набираем в консоли:
MONITOR=all phoronix-test-suite batch-benchmark hmmer
Как вы видите, получился увесистый набор дополнительно записываемых данных:
![](https://habrastorage.org/getpro/habr/upload_files/e03/ca0/5d3/e03ca05d31bb350406326d3e180d2bec.png)
А теперь самое важное — поговорим о результатах.
После выполнения тестов PTS выводит информацию о проведенном измерении в консоль и/или в файл. Результаты тестирования сохраняются в каталоги по умолчанию
для linux: ~/.phoronix-test-suite/test-results
для Windows: C:\Users\< User >\.phoronix-test-suite\test-results
Чтобы увидеть сохраненные тесты:
phoronix-test-suite list-results
Чтобы подробно ознакомится с результатами теста
phoronix-test-suite show-result < имя теста >
, например
phoronix-test-suite show-result hmmer-test-result
Можно конвертировать файл результатов в один из удобных для форматов: csv, json, pdf и др.
phoronix-test-suite result-file-to-<формат> < имя теста >
Разберёмся, как интерпретировать полученные данные. Наиболее простым вариантом является Excel – им и воспользуемся. Я использовал много разных тестов, так что покажу как выглядит часть моей таблички (зелёный цвет – лучший результат, красный – худший):
![](https://habrastorage.org/getpro/habr/upload_files/0f9/2ab/b15/0f92abb1500dffabcc88336b0211fd49.png)
Каждый тест при выводе результата указывает, как должно трактоваться числовое значение:
Higher Is Better – чем больше значение, тем лучше.
Lower Is Better – чем меньше значение, тем лучше.
Результат каждого теста заносился в табличку и впоследствии был проведён анализ. Каждая тестируемая площадка получала в типовом тесте +1 за лучший результат, и -1 за худший, все стартовали с 0. После подсчёта получаем относительное число по типам нагрузки на площадке, на основании которого можно получить представление о производительности тестируемых площадок.
![](https://habrastorage.org/getpro/habr/upload_files/122/7c6/016/1227c6016167b506e9f2021e5070828e.png)
Удобство получаемых данных в том, что мы можем однозначно сказать, какая система лучше. Числовой вывод позволяет однозначно интерпретировать полученные значения. Результаты, полученные с помощью Phoronix Test Suite могут использоваться в качестве метрик, на основании которых производится сравнительные тестирования. Если вам нужно получать важные и актуальные данные о состоянии или изменении текущей инфраструктуры, а также быстрее реагировать на «узкие» места в используемых системах, решать проблемы вовремя, то методика тестирования с помощью Phoronix Test Suite — это простой и удобный путь.
В этой статье я показал, как мы проводим один из видов тестирования различных площадок в дата-центрах. Вы тоже можете сравнить вашу текущую инфраструктуру с облачными решениями с помощью программного продукта Phoronix Test Suite. Пусть ваш выбор будет лёгким и выгодным!
Спасибо за внимание.
P.S. А ещё 28 декабря в 15-00 у нас будет вебинар по безопасности в соцсетях. Приглашаем зарегистрироваться.
Что ещё интересного есть в блоге Cloud4Y
→ Как я случайно заблокировал 10 000 телефонов в Южной Америке
→ Клавиатуры, которые постигла неудача
→ WD-40: средство, которое может почти всё
→ Изучаем своё железо: сброс паролей BIOS на ноутбуках
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.