Как убедить потенциальных покупателей систем хранения совершить покупку? Нарисовать привлекательную картину. Мотивация важнее точности. Продажа дополнительных СХД снимает зуд у многих покупателей, впечатленных их пропускной способностью. Истина в другом, пишет на портале ZDNet Робин Харрис, главный аналитик консалтинговой компании TechnoQWAN.

Пропускная способность — это простое и понятное, как думают люди, число. Чем больше это число, тем быстрее хранилище. Это не так.

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

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

Следующий график, созданный с помощью инструмента ATTO storage на быстром внутреннем PCIe SSD, иллюстрирует это. По оси X отложена пропускная способность, а по оси Y — размер доступа. Корреляция очевидна: небольшие запросы не используют большую пропускную способность.

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

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

Размер этих страниц фиксирован — 4 Кб для Windows и 16 Кб для последних версий macOS. Если у вас много физической памяти, то после перезагрузки подкачка сначала происходит редко, но со временем, когда вы запускаете больше программ и открываете больше вкладок, физическая память заполняется, и начинается регулярная подкачка.

Таким образом, большая часть трафика ввода-вывода в хранилище не находится под вашим непосредственным контролем. Он также не требует большой пропускной способности.

Что действительно важно?

Латентность. Как быстро устройство хранения обслуживает запрос.

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

Начнем с очевидной. Допустим, у вас есть устройство хранения с бесконечной пропускной способностью, но каждый доступ занимает 10 мс. Это устройство может обрабатывать 100 обращений в секунду (1000 мс/10 мс = 100). Если средний размер доступа составляет 16 Кб, то общая пропускная способность составит 1 600 000 Кб/с — меньше номинальных 60 Мб/с, которые предлагает USB 2.0, но при этом тратится почти бесконечная пропускная способность.

Доступ длительностью 10 мс — это примерно то, с чем справляется средний жесткий диск, поэтому производители СХД упаковывают их сотнями и даже тысячами для максимального увеличения доступа. Но это было в старые добрые времена.

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

Тонкая причина важности задержки более сложна. Допустим, у вас есть 100 устройств хранения со временем доступа 10 мс, а ваш процессор выдает 10 000 операций ввода-вывода в секунду (IOPS).

Ваши 100 устройств хранения могут обрабатывать 10 000 IOPS, так что проблем нет, верно? Нет. Поскольку каждый ввод-вывод занимает 10 мс, ваш процессор жонглирует 100 незавершенными вводами-выводами. Уменьшите задержку до 1 мс, и у процессора останется только 10 незавершенных операций ввода-вывода.

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

Итог

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

Например, преимущество FireWire перед USB 2, даже несмотря на примерно сопоставимые показатели пропускной способности, заключалось в задержке. USB 2 использовал протокол опроса доступа с более высокой задержкой. Диск FireWire всегда казался более быстрым, чем тот же диск через USB, из-за протокола с меньшей задержкой. Вы могли загрузить Mac с диска USB 2, но запуск приложений был очень медленным. В то же время Thunderbolt всегда был оптимизирован для работы с задержками, что является одной из причин его более высокой стоимости.