Почему скорость диска — это уже про сеть

Привет, %username%! Вроде бы все знают, что «SSD быстрее HDD», но в проде внезапно упираешься в латентность и IOPS, хотя диск на бумаге отличный. Статья от PlanetScale хорошо показывает, что сегодня производительность хранилища — это не только про железо, но и про то, где именно этот диск живёт: локально или в сети.

Кратко: эволюция хранилищ

  • Лента: гигантский объём, копеечная цена за ГБ, но случайный доступ — беда, десятки секунд ожидания, если нужные данные «далеко» по ленте. Отлично для архивов и backup, ужасно для OLTP.
  • HDD: всё ещё механика, но головка и шпиндель дают миллисекундные задержки на рандомный доступ, гораздо быстрее ленты и хороши для последовательных операций.
  • SSD: никакой механики, чтение/запись через NAND, рандомный доступ уже в микросекундах, но начинают играть роль параллелизм (таргеты/линии) и garbage collection с dirty‑страницами.

SSD: всё равно есть подводные камни

  • Даже у SSD раскладка данных важна: если все запросы едут в один таргет, остальные линии простаивают, а латентность растёт.
  • Garbage collection может внезапно убить хвосты задержек: чтобы записать новые страницы, контроллеру приходится двигать живые данные, очищать блоки и только потом писать, что особенно заметно на нагруженных дисках.

Как думаешь, учитываешь ли ты в проде поведение GC и параллелизма, или SSD для тебя — просто «чёрный, но быстрый ящик»?

Облако: где диск стал сетевым

  • Классический подход в облаке — разделение compute и storage: VM с диском по сети (EBS‑подобные тома) даёт гибкое масштабирование и живучесть данных при падении инстанса.
  • Цена — дополнительный сетевой RTT: локальный NVMe даёт десятки микросекунд, сетевое хранилище — уже сотни микросекунд + лимиты по IOPS и «кредиты на бурст».

Было ли у тебя, что CPU и RAM скучают, а p95/p99 запросов упираются в сетевое хранилище, хотя мониторинг «диска» вроде зелёный?

Локальный NVMe vs сетевое хранилище

  • Локальный NVMe: минимальная латентность, никаких искусственных cap’ов на IOPS, но надо самому решать задачи отказоустойчивости, репликации, мониторинга заполнения диска и его роста.
  • Сетевой диск: удобно масштабировать, проще привязать к «любому» compute, но платишь стабильной задержкой и ограничениями на количество операций, что бьёт по базам с высокими RPS.

Что бы ты выбрал для критичного прод‑сервиса: локальный NVMe с более сложной архитектурой или облачный managed‑подход с сетевым сториджем, но большей простотой?

Насколько для тебя сейчас критична latency именно стораджа? Смотришь ли ты на nano-/microseconds, когда проектируешь архитектуру, или пока достаточно «диска с нормальными IOPS»? Делись опытом, кейсами и граблями — особенно если уже сравнивал локальный NVMe и сетевые тома в бою.

#SRE #DevOps #Storage #Latency #SSD #HDD #Cloud