Почему производительность устройства хранения данных изменяется на различных глубинах очереди?

Я видел, что это раньше в среде контролировало, когда определенные компьютеры использовались в качестве своего рода системы контроля сотрудника, но это не имеет рядом столько же смысла сколько использование его LDAP наряду с ним.

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

4
задан 20 December 2012 в 01:16
2 ответа

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

NCQ делает это, переупорядочивая запросы ввода-вывода для оптимизации пропускной способности.

SSD: s работают иначе, чем механические накопители, поскольку они имеют параллельные флеш-чипы для хранения данных. Т.е. если вы отправляете один запрос ввода-вывода за раз, задержка (время поиска + чтения) определяет количество операций ввода-вывода в секунду. Но если вы отправляете 4 запроса одновременно, ssd-диск может получать их параллельно или другим оптимизированным способом, и вы можете получить в 4 раза большую пропускную способность.

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

EDIT:

Настоящая очередь находится в ОС, которая выдает все запросы. Тем не менее, я предполагаю, что драйвер контроллера передает определенное количество очереди на контроллер и диск, чтобы они могли работать с оптимизированной глубиной очереди. Для возможности оптимизации диск должен иметь собственную очередь.

5
ответ дан 3 December 2019 в 03:19

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

Глубина очереди и изменение количества операций ввода-вывода в секунду в зависимости от глубины очереди. Рассмотрим глубину очереди 1. В этом случае данная спецификация не основана на том, что диск отстает от количества запросов, генерируемых системой, а означает, что система генерирует 1 запрос к SSD. Для запроса существует время транзакции, поэтому, если за раз отправляется только 1 запрос, SSD может обработать только 1 запрос. Это должно иметь смысл. Из-за времени транзакции отправка 1 запроса за раз происходит медленнее, чем отправка 32 запросов одновременно, что и означает спецификация, такая как QD32.

Кроме того, как указано в другом комментарии, вы можете выполнять чтение / запись параллельно с SSD, на PCIe, а не на SATA.

Например, в случае Samsung 970 Pro QD1 = 55 000, а QD32 = 500 000 операций ввода-вывода в секунду. Это в основном потому, что вы отправляете один запрос, а не сразу 32. Время транзакции сокращается, поэтому вы в основном имеете дело с передачей данных. Итак, минус много обработки транзакций, и фактическая функция передачи данных увеличивается.

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

Что касается транзакций между ОС и устройством, устройство будет буферизовать определенное количество транзакций, и после этого ОС не будет отправлять больше транзакций. ДОЛЖНА быть форма подтверждения связи, которая обеспечивает упорядоченную обработку, что означает, что ОС не может отправлять больше запросов на диск, чем она может физически удерживать. В противном случае у вас будет хаос и плохо спроектированная система.

Другими словами, вопрос типа «что происходит, когда вы получаете входящий запрос, но глубина очереди заполнена» никогда не должен происходить в отношении диска, а на диске нет «глубины очереди» для хранения запросов, у него есть «очередь». Физическое количество запросов, которые будет удерживать диск, будет зависеть от типа диска. Он не может быть слишком маленьким, или диск не может очень хорошо оптимизировать чтение / запись, и он не может быть слишком большим по многим причинам: стоимость равна единице, невозможность оптимизации после того, как определенное количество запросов находится в очереди. наверное был бы другой.

2
ответ дан 19 February 2020 в 04:13

Теги

Похожие вопросы