Утилита тестирования Phoronix Test Suite

Thank you for reading this post, don't forget to subscribe!

Как извест­но, тести­ро­ва­ние явля­ет­ся неотъ­ем­ле­мой частью оцен­ки про­из­во­ди­тель­но­сти и каче­ства как про­грамм­но­го обес­пе­че­ния (ПО), так и обо­ру­до­ва­ния. В насто­я­щее вре­мя на рын­ке ПО для выпол­не­ния тестов нема­ло вари­ан­тов. Одна­ко сре­ди тако­го изоби­лия, как ока­зы­ва­ет­ся, не так уж и мно­го по-насто­я­ще­му уни­вер­саль­ных, и что нема­ло­важ­но, сво­бод­ных и каче­ствен­ных реше­ний, поз­во­ля­ю­щих объ­ек­тив­но оце­нить воз­мож­но­сти и надёж­ность обо­ру­до­ва­ния и ПО. И пожа­луй, наи­бо­лее достой­ным из тако­вых реше­ний явля­ет­ся ути­ли­та 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:

Под­ко­ман­да Зна­че­ние
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 отно­сят­ся к груп­пе «Processor». Поэто­му удоб­нее будет отсе­ять все осталь­ные кате­го­рии и тогда най­ти нуж­ный будет про­ще и быстрее:

Из пред­став­лен­ных резуль­та­тов мож­но, к при­ме­ру, выбрать тест ком­пи­ля­ции ядра Linux. Phoronix кон­фи­гу­ри­ру­ет тесты таким обра­зом, что­бы мак­си­маль­но задей­ство­вать ресур­сы аппа­ра­ту­ры для полу­че­ния мак­си­маль­но объ­ек­тив­ных резуль­та­тов. В слу­чае с тестом ком­пи­ля­ции ядра будет задей­ство­ва­но мак­си­маль­ное коли­че­ство ядер (или пото­ков) про­цес­со­ра. Ути­ли­та подоб­ные вещи спо­соб­на опре­де­лять авто­ма­ти­че­ски. Теперь для запус­ка теста нуж­но выполнить:

Сле­ду­ет ещё раз отме­тить, что если запус­ка­е­мый тест не был уста­нов­лен, то Phoronix сде­ла­ет это авто­ма­ти­че­ски перед его запус­ком. В этом слу­чае необ­хо­ди­мо вни­ма­тель­но сле­до­вать выда­ва­е­мым инструк­ци­ям, посколь­ку в ходе уста­нов­ки теста может потре­бо­вать­ся уста­нов­ка допол­ни­тель­ных паке­тов зависимостей.

Так­же во вре­мя запус­ка теста ути­ли­та попро­сит вве­сти наиме­но­ва­ние и опи­са­ние про­во­ди­мо­го теста. По его окон­ча­нии так­же будет пред­ло­же­но сра­зу же озна­ко­мить­ся с резуль­та­та­ми в интер­нет-бра­у­зе­ре, а так­же загру­зить их на сайт сообщества.

Когда необ­хо­ди­мо уда­лить неко­то­рые тесты, напри­мер они более не акту­аль­ны и/или зани­ма­ют лиш­нее дис­ко­вое про­стран­ство, то для это­го нуж­но выпол­нить подкоманду

Для уже рас­смот­рен­но­го теста по ком­пи­ля­ции ядра Linux это будет выгля­деть сле­ду­ю­щим образом:

Все свои дан­ные и кон­фи­гу­ра­цию ути­ли­та 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. Выгля­дит это сле­ду­ю­щим образом:

Рис. 1 — Пред­став­ле­ние резуль­та­тов тестов Phoronix Test Suite.

Для пока­за резуль­та­тов кон­крет­ных тестов пред­на­зна­че­на под­ко­ман­да show-result:

В резуль­та­те по-умол­ча­нию в интер­нет-бра­у­зе­ре будет откры­та HTML-стра­ни­ца, содер­жа­щая все дан­ные и инфор­ма­цию об ука­зан­ном тесте. Здесь «sansung-memory-benchmark» — имя ранее сохра­нён­ных резуль­та­тов теста.

Полу­чить инфор­ма­цию об име­ю­щих­ся (ранее сохра­нён­ных) резуль­та­тах тестов поз­во­ля­ет под­ко­ман­да list-saved-results:

$ phoronix-test-suite list-saved-results

Здесь важ­но заме­тить, что сохра­нён­ные тесты мож­но исполь­зо­вать для добав­ле­ния в них новых резуль­та­тов. Для это­го при запус­ке теста необ­хо­ди­мо ука­зы­вать тре­бу­е­мое имя теста, того, в кото­рый нуж­но доба­вить новые резуль­та­ты. Так напри­мер, для пока­зан­но­го выше теста по тести­ро­ва­нию памя­ти «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:

В резуль­та­те в интер­нет-бра­у­зе­ре будет откры­та HTML-стра­ни­ца, пока­зан­ная на рисун­ке ниже:

Рис. 2 — Фраг­мент глав­ной стра­ни­цы ути­ли­ты Phoronix Test Suite в режи­ме гра­фи­че­ско­го интерфейса.

При рабо­те с GUI доступ­ны прак­ти­че­ски все функ­ции, что и для команд­ной стро­ки. Осо­бен­но­стью явля­ет­ся нали­чие мони­то­рин­га неко­то­рых харак­те­ри­стик систе­мы, таких как часто­ты про­цес­со­ра, тем­пе­ра­ту­ры и т. д.

Рис. 3 — Про­смотр уста­нов­лен­ных в систе­ме тестов Phoronix Test Suite в режи­ме гра­фи­че­ско­го интерфейса.

Разо­брать­ся в GUI ути­ли­ты Phoronix не пред­став­ля­ет осо­бо­го тру­да, эле­мен­ты интер­фей­са гово­рят сами за себя.