< вернуться назад

Влияние глубины очереди на производительность и задержку

Влияние глубины очереди на производительность и задержку
#СистемноеАдминистрирование #Программирование #Технологии #Документация #BAUMSTORAGE
3 минуты

Рассмотрим понятие глубины очереди применительно к одиночному диску.

Чем больше глубина очереди, тем больше запросов жесткий диск может обработать за единицу времени. Это объясняется тем, что диск выстраивает последовательность обработки запросов таким образом, чтобы маршрут движения головок был оптимальным с точки зрения минимизации времени операций. Чем больше глубина очереди, тем больше у диска выбор и тем эффективнее оптимизация.

Диски SATA могут обрабатывать до 32 одновременных запросов, диски SAS – до 64. При максимальной глубине очереди производительность диска увеличивается примерно в три раза по сравнению с одиночными запросами.

Однако не все так просто. При увеличении глубины очереди растет задержка – среднее время выполнения запроса. Действительно, при глубине очереди, например, 32 каждый запрос должен подождать, пока будут обработаны предыдущие запросы. То есть, если общая производительность выросла в три раза по сравнению с глубиной очереди 1, время выполнения каждого запроса вырастет примерно в 10 раз. Это время складывается из времени ожидания и времени выполнения операции. Поэтому ориентироваться только на показатели производительности при максимальной глубине очереди не следует, так как задержки могут становиться слишком большими.

Когда мы говорим о глубине очереди применительно к RAID-массиву, картина меняется. При глубине очереди 1 мы не получим выигрыша в производительности по сравнению с одиночным диском, поскольку в массиве будет работать всегда только один диск. А вот если массив получит сразу столько запросов, сколько он имеет дисков в своем составе, мы получим рост производительности, пропорциональный числу дисков.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *
Author
Посетитель сайта

Добавить комментарий

Комментариев пока нет

Другие статьи, которые могут быть полезными

№ Вопрос Ответ 1. Каким образом система резервирует объемы данных для восстановления? Место под восстановление данных в пуле не резервируется, вместо этого используются hot-spare диски для каждого пула. Так...
3048
3
Том (данных) представляет собой именованное пространство, расположенное на пуле. На одном пуле может быть создано несколько томов, имена которых не должны повторяться. Том может быть создан «толстым», сразу занимающим фиксированный...
3559
2
Write-Aggregating Log-Structured Hashing: новая модель хранения данных Недавно группа ученых представили WALSH — Write-Aggregating Log-Structured Hashing (источник: https://dl.acm.org/doi/10.1145/3715010), индекс для гибридной DRAM + постоянной памяти (PM), который одновременно: Сокращает write-amplification...
836
2