Назад | Перейти на главную страницу

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

Когда я смотрю на варианты хранения на дисках (блочных устройствах) от различных поставщиков облачного хостинга, я обычно вижу такие числа, как:

Я ничего не знаю о базовой технологии.

Даже если эти облачные провайдеры будут использовать некоторые из доступных вариантов более медленных SSD (обычные потребительские твердотельные накопители SATA), некоторые из этих дисков поставляются со спецификациями IOPS для чтения и записи в диапазоне от 90,0000 и выше (если посмотреть на 860 EVO SSD 2.5). Твердотельный накопитель NVMe обеспечит гораздо лучшую пропускную способность. Даже если бы эти облачные провайдеры сложили эти SSD-диски в какой-то кластер хранения, я все равно был бы удивлен, увидев, что IOPS упадет с 90 000 до 3 000.

У меня такое ощущение, что эти цифры несопоставимы, хотя используется одна и та же метрика (IOPS).

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

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

Если один диск слишком ограничен, вы можете подключить несколько и использовать их все на одном хосте, например, с LVM. Немного странно иметь размер SSD для IOPS, а не для емкости, но, возможно, это ограничения этих типов дисков.

Если вы хотите запустить собственный массив хранения, сделайте это. Конечно, это означает, что вы не можете использовать управляемое хранилище, например, AWS или GCP.

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

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

Google указывает от 900 000 до 2 700 000 операций ввода-вывода в секунду для местный SSD. Это показывает, что их оборудование вполне способно. «Зональный SSD» имеет гораздо более низкое количество операций ввода-вывода в секунду, но это диск, доступный для всех серверов в конкретной зоне. Это означает, что он удален от сервера, на котором работает ваш код, и между вашим сервером и SSD есть программное обеспечение для управления одновременным доступом.

Да, это стоит большого количества операций ввода-вывода в секунду. Это не неожиданно. Просто посмотрите на огромную разницу между локальным твердотельным накопителем NVMe (2 700 000 IOPS) и не-NVMe (900 000 IOPS). Вы уже теряете 66% необработанной производительности, просто вводя одну медленную шину между микросхемами флэш-памяти и процессором. Вероятно, это несколько сантиметров кабеля SATA и микросхемы SATA с обеих сторон этого кабеля. Скорость Raw SSD настолько высока, что накладные расходы будут огромными.

Intel даже посчитала, что NVMe слишком медленная для их продукта хранения данных Optane, и выбрала DIMM, как и RAM. В этом есть смысл; Процессоры Intel могут делать несколько миллиард передача памяти в секунду. (не миллион, это действительно на три порядка больше). Однако Optane, похоже, терпит неудачу в этом отношении: он застрял ниже миллиона операций ввода-вывода в секунду, а интерфейс DIMM кажется смехотворным излишеством. Но направление ясно; даже NVMe может скоро стать слишком медленным для локального хранилища. Рецепт скорости - прямой доступ без накладных расходов. Цифры, которые вы цитируете, просто показывают, насколько сильно может упасть производительность при добавлении накладных расходов.