Тестирование производительности программного дискового массива в Linux (Повторный эксперимент с дисковыми очередями)


Администрирование операционных систем на базе Linux (Debian/Ubuntu и Centos/RedHat) Мониторинг серверов и сетевой инфраструктуры при помощи Zabbix
gita mdadm test виртуализации записи сервера чтения
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 1 месяц)

Сегодня мы закроем тему с программными дисковыми массивами в Linux и посмотрим на производительность этого решения. Сразу скажу, что чудес не бывает и программный массив будет работать медленнее чем аппаратный, что логично, а использовать md-массивы имеет смысл лишь в качестве зеркала для повышения отказоустойчивости системы. Если вы хотите немного подробностей, то у меня есть много графиков и я вам их покажу.

Повторное тестирование зеркального программного рэйда в среде виртуализации. В тестировании принимают участие идентичные накопители WD Black:

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital RE4
Device Model:     WDC WD1003FBYX-01Y7B0
Serial Number:    WD-WCAW31856269
LU WWN Device Id: 5 0014ee 25b199363
Firmware Version: 01.01V01
User Capacity:    1 000 204 886 016 bytes [1,00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Wed Jun 20 13:36:39 2018 +07

Линейная запись на дисковый накопитель

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

Для теста записи будем использовать простую команду (запись 66-и гигабайт информации):

# dd bs=655360 count=100000 if=/dev/zero of=/dev/sdb

На обоих накопителях естественно получен идентичный результат и значит этот тест будет надежнее предыдущего где участвовали два разных накопителя.

# dd bs=655360 count=100000 if=/dev/zero of=/dev/sdc
100000+0 записей получено
100000+0 записей отправлено
65536000000 bytes (66 GB, 61 GiB) copied, 483,759 s, 135 MB/s

Как мы видим пиковая линейная скорость записи у WB-Black 130 мб/секунду.

Линейное чтение информации с накопителя

Операция аналогичная представленной выше, но поменяем операторы местами:

# dd bs=655360 count=100000 if=/dev/sdb of=/dev/null

# dd bs=655360 count=100000 if=/dev/sdb of=/dev/null  
100000+0 записей получено
100000+0 записей отправлено
65536000000 bytes (66 GB, 61 GiB) copied, 484,962 s, 135 MB/s

Скорость линейного чтения примерно равна скорости линейной записи.

Синтетический тест (ферма виртуализации)

В прошлый раз я проводил тестирование при помощи специализированных утилит и как показала практика выводы не совпадали с последующей реальной практикой эксплуатации (лабораторные тесты они обычно далеки от реальной эксплуатации) и в сегодняшнем тесте я буду запускать несколько реальных достаточно тяжелых виртуальных машин, проводить замеры дисковой активности и загрузки процессора. Основная цель, сравнить скорость дисковых операций и пиковое количество операций в секунду при использовании обычного накопителя и программного RAID-массива и дополнительно, будем наблюдать за загруженностью процессора во время запуска и работы виртуальных машин.

Я создал пять виртуальных машин, которые являются клоном одной и той же машины которая имитирует активную работу, там запускаются несколько экземпляров Libreoffice, производится установка и удаление ПО, распаковывается архив, производится запись в базу данных и несколько параллельных операций чтения и записи (одновременно). 

Первым делом запустим одну виртуальную машину и посмотрим на создаваемую нагрузку на хост-систему.

Одиночный тест начался в 16.59 и закончился в 17.15.

Дисковая активность за этот период (не обращайте внимание на 1000% утилизации, если вам интересен этот параметр, то просто делите на 10).

Естественно, что одна виртуальная машина никакого интереса не представляет и такие замеры мы уже проводили в прошлой статье, нас на самом деле интересует конкурентная работа четырех виртуальных машин которые я буду запускать с задержкой в 30 секунд.

#!/bin/sh
virsh start test-1
sleep 30
virsh start test-2
sleep 30
virsh start test-3
sleep 30
virsh start test-4
sleep 30

Скрипт отработал, все машины запустились, отработали положенное время и отключились (они принудительно отключаются через 20 минут работы внутренним скриптом). Замер начался в 9.32 и закончился в 10.00, теперь у нас есть результаты относительно напоминающие хорошо загруженную конкурентную систему которые можно будет сравнивать с программным массивом (а в дальнейшем с SSD-накопителем и bcache), я конечно предпочел бы запустить побольше виртуальных машин, но тестовый компьютер ограничен в ресурсах.

Результаты тестирования одиночного HDD - накопителя

Представляю вашему вниманию результаты теста дисковой подсистемы и нагрузки на процессор при последовательном запуске и остановке четырех виртуальных машин эмулирующих реальный узел фермы виртуализации.

Утилизация процессора за время теста

Load Average за время теста

Скорость чтения-записи на диск

Длина дисковой очереди

Данные результаты будут использоваться для сравнения с нагрузкой на процессор и дисковую подсистему формируемые при работе с программным RAID-массивом.

Результаты тестирования программного дискового массива RAID-1 

Создадим программный дисковый массив первого уровня из двух идентичных накопителей:

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

Утилизация и Load Average сервера

Статистика дисковых операций на каждом из дисков отдельно

На MD-массиве в целом (начало замера 08:48)

Моя официальная страница на FaceBook
Мой микроблог в твиттер

Тестирование гибридного программного массива (HDD+SSD) (оптимизация фермы виртуализации)

Тестирование гибридного программного массива (HDD+SSD) (оптимизация фермы виртуализации)

Сегодня я немного поэкспериментирую с гибридным программным массивом состоящим из обычного жесткого диска и кэширующего твердотельного накопителя. Эксперимент должен оказаться довольно интересным, хотя средства измерения показывают погоду на Марсе и у меня все никак не доходят руки переписать скрипт собирающий сведения по IOPS-ам при дисковой активности.


Уничтожение программного дискового массива в Linux

Уничтожение программного дискового массива в Linux

Я недавно продемонстрировал как создать программный дисковый массив в Linux и теперь пришло время его разрушить.


Создание программного дискового массива (Software Raid) в Ubuntu Linux

Создание программного дискового массива (Software Raid) в Ubuntu Linux

Как говориться, если у вас нет денег на аппаратный RAID-контроллер, а ощущения защищенности и стабильности все же хочется. то вам на помощь придет программный дисковый массив и сегодня я вам расскажу как его создать. Это очень просто и вы легко сможете справиться с этой задачей.


Как вы наверное понимаете, бесплатно сейчас работать никто не будет и если ответ на ваш вопрос потребует больше трех минут времени и вам требуется полноценная консультация, то расценки на мои услуги представленны ниже.


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .