- PVSM.RU - https://www.pvsm.ru -

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов

В прошлый раз [1] мы рассказывали об инструментах с отрытым исходным кодом для оценки производительности процессоров и памяти. Сегодня говорим о бенчмарках для файловых систем и систем хранения данных на Linux — Interbench, Fio, Hdparm, S и Bonnie.

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 1 [2]
Фото — Daniele Levis Pelusi [3] — Unsplash


Fio [4]

Fio (расшифровывается как Flexible I/O Tester) создает потоки ввода/вывода данных с диска, чтобы оценить производительность файловой системы Linux. Утилиту можно запустить и на Windows — нужно установить интерфейс командной строки Cygwin [5]. Руководство по настройке есть в репозитории fio на GitHub [4].

Автор fio — Йенс Аксбо (Jens Axboe [6]), ответственный [7] за подсистему IO в Linux и разработчик утилиты blktrace [8] для трассировки операций ввода/вывода. Он создал fio, потому что устал [4] писать программы для тестирования специфической нагрузки вручную.

Утилита посчитает IOPS и пропускную способность системы, а также позволит оценить глубину очереди операций ввода/вывода. Утилита работает со специальными файлами (расширение .fio), в которых прописываются настройки и условия теста. Вариантов тестов несколько, например, есть произвольная запись, чтение и перезапись. Вот пример [9] содержимого файла для первого случая:

[global]
	name=fio-rand-read
	filename=fio-rand-read
	rw=randread
	bs=4K
	direct=0
	numjobs=1
	time_based=1
	runtime=900

Сегодня fio используется крупными компаниями — с утилитой работают в SUSE [10], Nutanix [11] и IBM [12].


Hdparm [13]

Утилиту написал канадский разработчик Марк Лорд (Mark Lord) в далеком 2005 году. Она до сих пор поддерживается автором [14] и является частью многих популярных дистрибутивов. Главное назначение hdparm — настройка параметров накопителей. Но инструмент можно [15] использовать для проведения простых бенчмарков, например, измерения скорости чтения. Для этого нужно написать в консоли команду:

$ sudo hdparm -t /dev/sdb

Система сформирует подобный ответ:

Timing buffered disk reads: 242 MB in 3.01 seconds = 80.30 MB/sec

Что касается настройки накопителей, то hdparm позволяет менять объем кеш-памяти, модифицировать параметры спящего режима и электропитания, а также безопасно стирать данные на SSD. Но, как предупреждают [16] специалисты из ArchLinux, неосторожное изменение системных параметров может сделать данные на диске недоступными и даже повредить накопитель. Перед работой с hdparm лучше ознакомиться с руководством — достаточно прописать в консоли команду man hdparm.


S [17]

Это — набор бенчмарков для оценки производительности систем ввода/вывода. Авторами утилиты выступила команда разработчиков [18] из группы AlgoDev, в которую входят сотрудники итальянского Университета Модены и Реджо-Эмилии [19].

Все бенчмарки представляют собой bash-скрипты, оценивающие [20] производительность системы хранения данных — пропускную способность, латентность, работу планировщиков. К примеру, бенчмарк throughput-sync.sh «бомбардирует» СХД запросами на чтение или запись (в этом случае используется уже упомянутая утилита fio). Вот код этого скрипта [21].

Другой скрипт — comm_startup_lat.sh — измеряет задержку чтения данных с диска при «холодном кэше» (когда в нем нет необходимых данных). Код также можно найти в репозитории [22].


Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 2
Фото — Agê Barros [23] — Unsplash


Bonnie [24]

Утилита для оценки производительности файловой системы, разработанная в 1989 году. Её автором выступил инженер Тим Брей (Tim Bray). С помощью Bonnie он планировал оптимизировать [25] работу вычислительных систем, задействованных в проекте New Oxford English Dictionary [26] в Университете Ватерлоо.

Bonnie выполняет [27] произвольное чтение и запись данных на диск. После утилита показывает такие параметры, как число обработанных байтов за CPU-секунду [28], а также уровень загрузки процессора в процентах. Исходный код бенчмарка можно найти на Google Code [29].

На основе Bonnie построен другой комплекс инструментов для тестирования жесткого диска — Bonnie++ [30] (написан на C++, вместо C). В нем приведены дополнительные бенчмарк-инструменты. Например, zcav для оценки производительности различных зон HDD. Также Bonnie++ подходит [31] для тестирования почтовых серверов и серверов баз данных.


Interbench [32]

Утилиту разработал Кон Коливас [33] (Con Kolivas), австралийский анестезиолог, который известен своим вкладом в разработку ядра Linux и работой над «справедливым планировщиком процессора [34]». Interbench помогает настроить параметры планировщика ввода/вывода и файловой системы.

Interbench эмулирует поведение планировщика CPU при выполнении интерактивных задач. Этими интерактивными задачами могут выступать работа со звуком и видео, запуск компьютерных игр или простое перетаскивание диалогового окна в операционной системе.

Исходный код, примеры и рекомендации по настройке инструмента можно найти в официальном репозитории на GitHub [32].


О чем мы пишем в наших блогах:

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 3 Бенчмарки для Linux-серверов: 5 открытых инструментов [1]

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 4 Резервное копирование файлов: как подстраховаться от потери данных [35]
Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 5 Как перенести системный жесткий диск в виртуальную машину? [36]
Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 6 Тренировочный стенд для админов: чем поможет облако [37]

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 7 Досмотры гаджетов на границе: как действовать, чтобы не потерять конфиденциальные данные? [38]
Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов - 8 Снэпшоты: зачем нужны «снимки» [39]

Автор: 1cloud

Источник [40]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/322407

Ссылки в тексте:

[1] прошлый раз: https://habr.com/ru/company/1cloud/blog/455834/

[2] Image: https://habr.com/ru/company/1cloud/blog/458204/

[3] Daniele Levis Pelusi: https://unsplash.com/photos/rmM8V7L1BhM

[4] Fio: https://github.com/axboe/fio

[5] Cygwin: https://ru.wikipedia.org/wiki/Cygwin

[6] Jens Axboe: https://ru.qwerty.wiki/wiki/Jens_Axboe

[7] ответственный: https://www.phoronix.com/scan.php?page=news_item&px=Linux-io_uring-Fast-Efficient

[8] blktrace: https://linux.die.net/man/8/blktrace

[9] пример: https://github.com/axboe/fio/blob/master/examples/fio-rand-read.fio

[10] SUSE: https://www.suse.com/media/presentation/TUT92092_benchmarking_ceph_for_real_world_scenarios.pdf

[11] Nutanix: https://next.nutanix.com/installation-configuration-23/fio-test-504

[12] IBM: https://www.ibm.com/cloud/blog/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd

[13] Hdparm: https://sourceforge.net/projects/hdparm/

[14] поддерживается автором: https://sourceforge.net/p/hdparm/patches/

[15] можно: http://www.linux-magazine.com/Online/Features/Tune-Your-Hard-Disk-with-hdparm

[16] предупреждают: https://wiki.archlinux.org/index.php/Hdparm

[17] S: https://github.com/Algodev-github/S

[18] команда разработчиков: http://algogroup.unimore.it/#people

[19] Университета Модены и Реджо-Эмилии: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B4%D0%B6%D0%BE-%D0%BD%D0%B5%D0%BB%D1%8C-%D0%AD%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F)#%D0%9E%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

[20] оценивающие: https://github.com/Algodev-github/S/blob/master/USAGE-INSTALLATION

[21] код этого скрипта: https://github.com/Algodev-github/S/blob/master/throughput-sync/throughput-sync.sh

[22] можно найти в репозитории: https://github.com/Algodev-github/S/blob/master/comm_startup_lat/comm_startup_lat.sh

[23] Agê Barros: https://unsplash.com/photos/rBPOfVqROzY

[24] Bonnie: http://www.textuality.com/bonnie/

[25] оптимизировать: http://www.tbray.org/ongoing/misc/Software#p-1

[26] New Oxford English Dictionary: https://en.wikipedia.org/wiki/Oxford_English_Dictionary#Second_edition

[27] выполняет: http://www.textuality.com/bonnie/intro.html

[28] CPU-секунду: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D1%8F

[29] найти на Google Code: https://code.google.com/archive/p/bonnie-64/

[30] Bonnie++: https://linux.die.net/man/8/bonnie++

[31] подходит: https://linoxide.com/file-system/install-test-filesystem-performance-bonnie/

[32] Interbench: https://github.com/ckolivas/interbench

[33] Кон Коливас: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D0%B8%D0%B2%D0%B0%D1%81,_%D0%9A%D0%BE%D0%BD

[34] справедливым планировщиком процессора: https://en.wikipedia.org/wiki/Completely_Fair_Scheduler

[35] Резервное копирование файлов: как подстраховаться от потери данных: https://1cloud.ru/blog/rezervnoe-kopirovanie-failov?utm_source=habrahabr&utm_medium=cpm&utm_campaign=bench2&utm_content=blog

[36] Как перенести системный жесткий диск в виртуальную машину?: https://1cloud.ru/blog/sozdanie-virtualnoj-mashiny-v-oblake?utm_source=habrahabr&utm_medium=cpm&utm_campaign=bench2&utm_content=blog

[37] Тренировочный стенд для админов: чем поможет облако: https://1cloud.ru/blog/oblachnyj-server-dlja-praktiki-sysadmina?utm_source=habrahabr&utm_medium=cpm&utm_campaign=bench2&utm_content=blog

[38] Досмотры гаджетов на границе: как действовать, чтобы не потерять конфиденциальные данные?: https://www.facebook.com/1cloudru/posts/2356047431384430

[39] Снэпшоты: зачем нужны «снимки»: https://www.facebook.com/1cloudru/posts/2352597941729379

[40] Источник: https://habr.com/ru/post/458204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=458204