Как известно, тестирование является неотъемлемой частью оценки производительности и качества как программного обеспечения (ПО), так и оборудования. В настоящее время на рынке ПО для выполнения тестов немало вариантов. Однако среди такого изобилия, как оказывается, не так уж и много по-настоящему универсальных, и что немаловажно, свободных и качественных решений, позволяющих объективно оценить возможности и надёжность оборудования и ПО. И пожалуй, наиболее достойным из таковых решений является утилита Phoronix Test Suite. О ней более подробно будет рассказано в данной статье.
Основные особенности и возможности Phoronix
Утилита Phoronix является кроссплатформенным решением. Она имеет очень широкий набор самых популярных и эффективных тестов, а также готовые комплексные тесты для тестирования отдельных компонент, таких как дисковая или подсистема памяти, GPU, CPU и т. д.
Для тестирования графической подсистемы, а также общей производительности есть возможность воспользоваться игровыми тестами, предусмотренными Phoronix по-умолчанию. Их номенклатура довольно широка: Xonotic, Tesseract, SuperTuxKart и т. д. Также Phoronix поддерживает в качестве игровых тестов запуск некоторых игр в режиме «бенчмарк», установленных через платформу Steam, таких как Dota 2, Portal 2, Team Fortress 2, F1 2017 и другие.
Сама утилита написана на языке PHP. Её бэкенд представляет собой программную обёртку для управления тестами, а также для вывода и представления их результатов. Есть также возможность составления собственных комплексных тестов.
Одной из ключевых особенностей Phoronix является то, что «из коробки» поставляются лишь некоторые, самые популярные тесты. При необходимости утилита самостоятельно скачает и установит необходимый тест. Это сделано для экономии дискового пространства, поскольку некоторые тесты для графической подсистемы например, занимают довольно внушительный объём в файловой системе.
В большинстве Linux-дистрибутивов утилита Phoronix доступна в стандартном репозитории. Соответствующий пакет обычно так и называется: phoronix-test-suite. Конечно же для его корректной установки и работы необходимы некоторые зависимые пакеты, такие как php5, curl и php5-gd.
Утилита также позволяет производить мониторинг температур и частот процессора во время выполнения теста и отображать соответствующие лог-графики. Результаты тестов можно по желанию выгружать на сайт сообщества https://openbenchmarking.org. Это довольно удобно, например, когда необходимо сравнить результаты схожих по конфигурации систем, полученных от других тестеров и оверклокеров по всему миру.
Синтаксис команд Phoronix и её основные опции
Утилита предоставляет доступ к управлению и запуску тестов с помощью команды phoronix-test-suite. Следующие за этой командой специальные подкоманды, собственно и реализуют тестирование. Таким образом, синтаксис утилиты Phoronix следующий:
phoronix-test-suite подкоманда [аргументы]
Ознакомиться с набором всех доступных подкоманд можно, если запустить утилиту без каких-либо аргументов:
$ phoronix-test-suite
В результате будет выведен список подкоманд, сгруппированный по категориям задач, таких как:
- установка и удаление тестов;
- запуск тестов;
- анализ результатов;
- управление результатами;
- и т. д.
Некоторые наиболее часто используемые подкоманды Phoronix:
Подкоманда | Значение |
list-available-tests | Вывод списка всех доступных тестов. |
list-installed-tests | Вывод списка всех установленных тестов. |
Remove-installed-test [Test] | Удаление указанного в качестве [Test] теста. |
list-saved-results | Вывод списка сохранённых результатов тестов. |
show-result [Test Result] | Показ указанных в качестве [Test Result] результатов тестов. |
result-file-to-csv [Test Result] | Портирование результатов в файл формата CSV. |
result-file-to-pdf [Test Result] | Портирование результатов в файл формата PDF. |
result-file-to-text [Test Result] | Портирование результатов в текстовый файл. |
remove-result [Test Result] | Удаление указанного результата теста. |
Примеры использования утилиты Phoronix в командной консоли
Итак, в качестве примера можно рассмотреть самую распространённую ситуацию: сборка нового компьютера или отдельных комплектующих, которые необходимо (или просто очень интересно) протестировать на предмет производительности и/или быстродействия. Допустим, интересует производительность процессора. Для этого необходимо для начала ознакомиться, какими тестами для CPU располагает Phoronix:
$ phoronix-test-suite list-available-tests
В результате будет выведен довольно длинный список тестов, в котором довольно сложно ориентироваться. Все тесты для процессоров в Phoronix относятся к группе «Processor». Поэтому удобнее будет отсеять все остальные категории и тогда найти нужный будет проще и быстрее:
$ phoronix-test-suite list-available-tests | grep Processor . . . pts/build-apache - Timed Apache Compilation Processor pts/build-eigen - Timed Eigen Compilation Processor pts/build-firefox - Timed Firefox Compilation Processor pts/build-gcc - Timed GCC Compilation Processor pts/build-imagemagick - Timed ImageMagick Compilation Processor pts/build-linux-kernel - Timed Linux Kernel Compilation Processor pts/build-llvm - Timed LLVM Compilation Processor pts/build-mplayer - Timed MPlayer Compilation Processor pts/build-php - Timed PHP Compilation Processor pts/build-webkitfltk - Timed WebKitFLTK Compilation Processor pts/bullet - Bullet Physics Engine Processor pts/byte - BYTE Unix Benchmark Processor pts/c-ray - C-Ray Processor pts/cachebench - CacheBench Processor pts/clomp - CLOMP Processor pts/cloverleaf - CloverLeaf Processor pts/compress-7zip - 7-Zip Compression Processor . . .
Из представленных результатов можно, к примеру, выбрать тест компиляции ядра Linux. Phoronix конфигурирует тесты таким образом, чтобы максимально задействовать ресурсы аппаратуры для получения максимально объективных результатов. В случае с тестом компиляции ядра будет задействовано максимальное количество ядер (или потоков) процессора. Утилита подобные вещи способна определять автоматически. Теперь для запуска теста нужно выполнить:
$ phoronix-test-suite run build-linux-kernel
Следует ещё раз отметить, что если запускаемый тест не был установлен, то Phoronix сделает это автоматически перед его запуском. В этом случае необходимо внимательно следовать выдаваемым инструкциям, поскольку в ходе установки теста может потребоваться установка дополнительных пакетов зависимостей.
Также во время запуска теста утилита попросит ввести наименование и описание проводимого теста. По его окончании также будет предложено сразу же ознакомиться с результатами в интернет-браузере, а также загрузить их на сайт сообщества.
Когда необходимо удалить некоторые тесты, например они более не актуальны и/или занимают лишнее дисковое пространство, то для этого нужно выполнить подкоманду
$ remove-installed-test
Для уже рассмотренного теста по компиляции ядра Linux это будет выглядеть следующим образом:
$ phoronix-test-suite remove-installed-test build-linux-kernel-1.9.1 Are you sure you wish to remove the test pts/build-linux-kernel-1.9.1 (y/N): y pts/ build-linux-kernel-1.9.1 has been removed Узнать, какие на данный момент тест установлены, позволяет подкоманда list-installed-tests: $ phoronix-test-suite list-installed-tests Phoronix Test Suite v5.2.1 20 Tests Installed pts/aobench-1.0.1 - AOBench pts/asmfish-1.1.1 - asmFish pts/build-linux-kernel-1.9.1 - Timed Linux Kernel Compilation pts/compress-7zip-1.7.0 - 7-Zip Compression pts/encode-flac-1.6.0 - FLAC Audio Encoding pts/encode-mp3-1.7.3 - LAME MP3 Encoding pts/fhourstones-1.1.2 - Fhourstones pts/gputest-1.3.2 - GpuTest pts/mpcbench-1.0.1 - GNU MPC pts/openssl-1.11.0 - OpenSSL pts/povray-1.2.1 - POV-Ray pts/ramspeed-1.4.2 - RAMspeed SMP pts/stockfish-1.1.1 - Stockfish pts/supertuxkart-1.5.2 - SuperTuxKart pts/tesseract-1.1.0 - Tesseract pts/tinymembench-1.0.2 - Tinymembench pts/ttsiod-renderer-1.7.0 - TTSIOD 3D Renderer pts/x264-2.5.0 - x264 pts/xonotic-1.5.1 - Xonotic
Все свои данные и конфигурацию утилита Phoronix хранит, как правило, в домашнем каталоге пользователя в подкаталоге .phoronix-test-suite
, например в /home/john/.phoronix-test-suite
. Здесь среди всех прочих находятся каталоги installed-tests и test-results для хранения установленных тестов и результатов тестирования соответственно.
Phoronix поддерживает расширение функционала с помощью модулей, для которых существуют каталоги modules и modules-data. Это касается уже более «продвинутого» тестирования, которым занимаются оверклокеры или обзорщики всевозможного компьютерного «железа».
Более подробно о расширении возможностей и о более «продвинутом» использовнии Phoronix можно ознакомиться на страницах официального руководства, распространяемого в электронном виде по адресу https://www.phoronix-test-suite.com/documentation/.
Работа с результатами тестирования
По желанию Phoronix может сохранять результаты тестов в разных форматах: CSV, TXT или PDF. По-умолчанию, если не указан конкретный формат, то результаты сохраняются в формате HTML. Выглядит это следующим образом:
Для показа результатов конкретных тестов предназначена подкоманда show-result:
$ phoronix-test-suite show-result sansung-memory-benchmark
В результате по-умолчанию в интернет-браузере будет открыта HTML-страница, содержащая все данные и информацию об указанном тесте. Здесь «sansung-memory-benchmark» — имя ранее сохранённых результатов теста.
Получить информацию об имеющихся (ранее сохранённых) результатах тестов позволяет подкоманда list-saved-results:
$ phoronix-test-suite list-saved-results
Phoronix Test Suite v5.2.1 1 Saved Results Saved Name: samsung-memory-benchmark Title: samsung-memory-benchmark - Stock at 2400 MHz - Stock at 2400 MHz, AIM BIOS 7B77v18 - Stock at 2400 MHz, AIM BIOS 7B77v18 New
Здесь важно заметить, что сохранённые тесты можно использовать для добавления в них новых результатов. Для этого при запуске теста необходимо указывать требуемое имя теста, того, в который нужно добавить новые результаты. Так например, для показанного выше теста по тестированию памяти «sansung-memory-benchmark» (с помощью теста Tinymembench), это имя использовалось впоследствии, при добавлении в него новых результатов с описанием «Stock at 2400 MHz, AIM BIOS 7B77v18» и «Stock at 2400 MHz, AIM BIOS 7B77v18 New». При этом в этом тесте уже были ранее полученные результаты, обозначенные как «Stock at 2400 MHz».
Графический интерфейс Phoronix
Для того, чтобы работать с утилитой Phoronix с помощью графического пользовательского интерфейса (GUI), нужно выполнить подкоманду gui:
$ phoronix-test-suite gui
В результате в интернет-браузере будет открыта HTML-страница, показанная на рисунке ниже:
При работе с GUI доступны практически все функции, что и для командной строки. Особенностью является наличие мониторинга некоторых характеристик системы, таких как частоты процессора, температуры и т. д.
Разобраться в GUI утилиты Phoronix не представляет особого труда, элементы интерфейса говорят сами за себя.
Заключение
В заключение необходимо отметить, что утилита тестирования Phoronix – это действительно самый мощный и универсальный инструмент тестирования как оборудования, так и системы в целом. Активная поддержка и развитие данного проекта делают его очень перспективным. Кроме всего прочего, проект Phoronix Test Suite давно оброс многочисленным сообществом, члены которого, благодаря возможности автоматической публикации результатов тестирования, обмениваются между собой как самими результатами тестирования, обмениваются между собой как самими результатами тестирования, так и собственными достижениями в оверклокинге.