Бенчмарки для Linux-серверів: 5 відкритих інструментів

Сьогодні ми розповімо про відкриті інструменти для оцінки продуктивності процесорів, пам'яті, файлових систем та систем зберігання даних.

До списку увійшли утиліти, пропоновані резидентами GitHub та учасниками тематичних тредів на Reddit — Sysbench, UnixBench, Phoronix Test Suite, Vdbench та IOzone.

Бенчмарки для Linux-серверів: 5 відкритих інструментів
/ Unsplash / Віра Іванова

Сісбенч

Це — утиліта для тестування навантаження MySQL-серверів, заснована на проекті LuaJIT, в рамках якого розробляється віртуальна машина для мови Lua. Автор інструменту — програміст та експерт з MySQL Олексій Копитов. Проект починався як хобі, але згодом набув визнання спільноти. Сьогодні sysbench використовують у своїй роботі великі університети та ІТ-організації. на кшталт IEEE.

Під час конференції SECR-2017 (запис виступу є на YouTube) Олексій розповів, що sysbench дозволяє оцінити продуктивність бази даних при перенесенні на нове обладнання, оновленні версії СУБД або різкій зміні числа запитів. У загальному випадку синтаксис команди для проведення тесту виглядає так:

sysbench [options]... [testname] [command]

Ця команда визначає тип (cpu, memory, fileio) та параметри навантажувального тесту (кількість потоків, кількість запитів, швидкість обробки транзакцій). Загалом інструмент здатний обробляти мільйони подій за секунду. Детальніше про архітектуру та внутрішній пристрій sysbench Олексій Копитов розповів в одному з випусків подкасту Software Development Podcast.

UnixBench

Набір інструментів для оцінки продуктивності систем Unix. Його представили інженери з університету Монаша у 1983 році. З того моменту підтримкою інструменту займалося безліч людей, наприклад, автори журналу про мікрокомп'ютерні технології Журнал "Байт" та учасник LKML Девід Ніємі (David Niemi). За вихід наступної версії інструменту відповідає Ентоні Воелм (Anthony Voellm) з Microsoft.

UnixBench є набір індивідуальних тестів. Вони зіставляють швидкість виконання коду на машині під керуванням Unix із продуктивністю еталонної системи, у ролі якої виступає Станція SPARC 20-61. На основі цього порівняння генерується бал, що визначає продуктивність.

Серед доступних тестів числяться: Whetstone, який описує ефективність операцій з плаваючою точкою, File Copy, що оцінює швидкість копіювання даних, та кілька 2D та 3D-бенчмарків. Повний список тестів можна знайти у репозиторії на GitHub. Багато хто з них використовують для оцінки продуктивність віртуальних машин у хмарі.

Набір тестів Phoronix

Цей комплекс тестів розроблено авторами веб-ресурсу Phoronix, на якому публікуються новини про дистрибутиви GNU/Linux. Вперше Test Suite представили в 2008 році - тоді він включав 23 різних тести. Пізніше розробники запустили хмарний сервіс openbenchmarking.org, де користувачі могли публікувати власні тестові сценарії. Сьогодні на ньому представлено близько 60 бенчмарк-наборів, у тому числі пов'язаних з машинним навчанням та технологією ray-tracing.

Набори спеціалізованих скриптів дозволяють протестувати окремі компоненти системи. З їхньою допомогою можна оцінити час компіляції ядра та кодування відеофайлів, швидкість стиснення архіваторів та ін. Для запуску тестів достатньо написати відповідну команду в консолі. Наприклад, ця команда ініціює оцінку продуктивності CPU:

phoronix-test-suite benchmark smallpt

Під час тестування Test Suite самостійно контролює стан обладнання (температуру CPU та швидкість обертання кулерів), захищаючи систему від перегріву.

Бенчмарки для Linux-серверів: 5 відкритих інструментів
/ Unsplash / Джейсон Чен

Vdbench

Інструмент для генерації I/O-навантаження на дискові системи розроблений Oracle. Він допомагає оцінити продуктивність та цілісність СГД (про те, як порахувати теоретичну продуктивність дискової системи, ми підготували коротку довідку).

Працює рішення так: на реальній системі запускається програма SWAT (Sun StorageTek Workload Analysis Tool), яка створює дамп з усіма зверненнями до диска за певний період. Записуються мітка часу, тип операції, адреса та розмір блоку даних. Далі, використовуючи файл із дампом, vdbench емулює навантаження на будь-якій іншій системі.

Список параметрів для керування утилітою є в офіційному документі Oracle. Вихідний код утиліти можна знайти на сайті компанії.

IOzone

Консольна утиліта з метою оцінки продуктивності файлових систем. Вона визначає швидкість читання, запису та перезапису файлів. У розробці інструменту взяли участь десятки програмістів, але автором його першої версії вважається інженер Вільям Норкотт (William Norcott). Розробку підтримали такі компанії, як Apple, NetApp та iXsystems.

Для керування потоками та їх синхронізації під час тестування інструмент використовує стандарт Потоки POSIX. Після завершення роботи IOzone видає звіт із результатами або у текстовому форматі, або у вигляді електронної таблиці (Excel). Також інструмент має у складі скрипт gengnuplot.sh, який будує за даними таблиць тривимірний графік. Приклади таких графіків можна знайти у документації до інструменту (стор. 11–17).

IOzone доступний як тестовий профайл у вже згаданому Phoronix Test Suite.

Додаткове читання з наших блогів та соціальних мереж:

Бенчмарки для Linux-серверів: 5 відкритих інструментів Баг в Linux 5.1 призводив до втрати даних - патч, що коригує, вже вийшов
Бенчмарки для Linux-серверів: 5 відкритих інструментів Є думка: технологія DANE для браузерів провалилася

Бенчмарки для Linux-серверів: 5 відкритих інструментів Навіщо потрібний моніторинг?
Бенчмарки для Linux-серверів: 5 відкритих інструментів Резервне копіювання файлів: як підстрахуватися від втрати даних
Бенчмарки для Linux-серверів: 5 відкритих інструментів Як перенести системний жорсткий диск у віртуальну машину?

Бенчмарки для Linux-серверів: 5 відкритих інструментів Всі говорять про витік ПД - чим допоможе IaaS-провайдер
Бенчмарки для Linux-серверів: 5 відкритих інструментів Короткий лікнеп: як влаштована ЕЦП
Бенчмарки для Linux-серверів: 5 відкритих інструментів Довідкова: як працює закон про персональні дані

Джерело: habr.com

Додати коментар або відгук