Наша кластерная система в настоящее время работает под управлением CentOS7 с отключенными твердотельными накопителями и NCQ. Какого рода падение производительности следует ожидать при интенсивном использовании ввода-вывода?
Я не исключаю точного ответа, потому что знаю, что это во многом зависит от приложения, оборудования и сети, но просто идея была бы отличной.
NCQ - это технология, которая позволяет дискам изменять порядок обработки запросов на чтение и запись.
Твердотельные накопители избавляют вас от времени поиска, от которого страдают жесткие диски, но на самом деле чтение и запись на кристалл NAND не особенно быстр. SSD-накопители позволяют обойти это путем параллельного чтения и записи на несколько кристаллов NAND.
Чтобы достичь этого, твердотельные накопители полагаются на три типа стратегий: для большого запроса ввода-вывода разделите запрос на несколько кристаллов, разделив его и записав части данных на отдельные кристаллы параллельно. Мы надеемся, что при чтении данные также будут разделены между матрицами и могут быть прочитаны параллельно.
Для небольших загрузок ввода-вывода SSD обычно кэшируют их множество во встроенной памяти и параллельно записывают все множество из них на разные кристаллы NAND. Вот почему твердотельные накопители могут иметь такую высокую производительность произвольной записи.
Для небольших операций ввода-вывода или смешанных рабочих нагрузок SSD будет обслуживать запрос в очереди команд вне очереди, пытаясь сохранить как можно больше параллельных процессоров NAND. SSD может делать это, только если включен NCQ. Это может иметь огромное значение для тяжелых рабочих нагрузок ввода-вывода. Для AHCI я видел разницу до 10x, а для NVMe - более 100x.
Если вы когда-либо видели тесты SSD из приложения для тестирования, такого как CrystalDiskMark или аналогичного, вы можете увидеть, что они обычно предоставляют результаты случайного чтения 4k как с глубиной очереди, так и без нее. Если NCQ отключен, разница между этими двумя числами мала, при включении NCQ - огромная. Например, этот обзор Bit-tech, поместите результаты случайного чтения QD1 4k для Samsung 950 PRO 512 ГБ (диск NVMe) на 60 МБ / с, но результаты случайного чтения QD32 4k для того же диска составляют 1261 МБ / с.
NCQ предназначен для переупорядочивания операций чтения / записи в очереди, чтобы минимизировать поиск голов и повысить производительность. Хороший бенчмарк с механичал дисками и NCQ можно найти Вот
Однако, вопреки распространенному мнению, NCQ даже более важен для SSD. Причина в том, что, хотя у них нет головок, из-за их очень низкой задержки очереди команд становятся действительно критически важными для достижения максимальной производительности.
Подумайте об этом: если у AHCI была только одна очередь из 32 записей, у NVMe было 64 КБ очередей по 64 КБ в каждой.
NCQ помогает диску переупорядочивать операции чтения / записи секторов для повышения скорости. С целью меньше движений головой. Если вы используете SSD вместо вращающегося магнитного диска, выигрыш в скорости NCQ будет менее заметным.