Вопрос с собеседования · System design

Какие порядки величин стоит держать в голове при оценке на салфетке?

MiddleОценка нагрузки
Ещё спрашивают так:
  • Какие числа помнить для оценок на собеседовании?
  • Во сколько раз память быстрее диска?
Коротко

Важны соотношения: память ~100 нс, SSD ~100 мкс (в тысячу раз медленнее), HDD ~10 мс (ещё в сто), сеть внутри дата-центра ~0,5 мс, другой континент ~100+ мс.

  • Скорость света в оптоволокне ~200 000 км/с — межконтинентальный оборот физически ≥ 50–100 мс
  • Последовательное чтение намного быстрее случайного
  • Пропускная способность: память — десятки ГБ/с, NVMe — единицы ГБ/с, сеть 10 Гбит/с ≈ 1 ГБ/с

А ещё Выводы: кэш в памяти окупается, случайного доступа к диску избегают, далёких пользователей обслуживают CDN и региональные копии

Подробно

Задержки (порядки):

ОперацияВремя
кэш процессора L1~1 нс
оперативная память~100 нс
случайное чтение NVMe SSD~20–100 мкс
оборот в дата-центре~0,2–0,5 мс
случайное чтение HDD~5–10 мс
Москва — Санкт-Петербург и обратно~10 мс
Москва — Франкфурт и обратно~40 мс
через океан и обратно~100–150 мс

Объёмы и скорости: в сутках ~10⁵ с, в месяце ~2,5 × 10⁶ с, в году ~3 × 10⁷ с; 1 млн записей по 1 КБ = 1 ГБ; сеть 1 Гбит/с ≈ 125 МБ/с.

Выводы для проектирования:

  • обращение к кэшу в памяти в десятки тысяч раз дешевле запроса в базу — кэш почти всегда окупается;
  • поход в сеть в цикле — главный источник медленных запросов (N+1);
  • диск любит последовательную запись — отсюда журналы, Kafka, LSM;
  • физику не обойти: пользователи на другом континенте получат +100 мс на каждый оборот — нужны CDN, региональные развёртывания, меньше оборотов.

Что хотят услышать

  • Порядки по уровням памяти, диска и сети.
  • Соотношения между ними, а не точные цифры.
  • Выводы для архитектуры.

Частые ошибки

  • Считать SSD сравнимым с памятью.
  • Забывать про физический предел задержки между континентами.

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Память — порядка 100 нс, случайное чтение с SSD — десятки–сотни мкс
  • ✓Round trip внутри ДЦ ≈ 0,5 мс, между континентами — порядка 100 мс
  • ✗Случайное чтение с вращающегося диска сопоставимо по скорости с чтением из оперативной памяти
  • ✓Межконтинентальную задержку ограничивает скорость света

Что спросят дальше

  • Почему это делает CDN обязательным для глобальной аудитории?
  • Как оценить объём кэша через рабочее множество?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования