Этап 13 из 15 · ≈ 8 ч

Задержки и производительность

Основа с Senior

Перцентили, хвостовые задержки, пулы соединений, неблокирующий ввод-вывод, вероятностные структуры.

Что важно знать

  • p99 важнее среднего: при фан-ауте на 100 сервисов почти каждый запрос встречает «хвост».
  • Пулы соединений: слишком маленький — очередь, слишком большой — перегрузка базы.
  • Неблокирующий ввод-вывод и event loop — тысячи соединений на поток.
  • Фильтр Блума, HyperLogLog, Count-Min — приближённые ответы ценой малой памяти.

Критерии освоения

Senior ≈ 8 ч

  • Объясняет хвостовые задержки и приёмы их снижения (hedged requests, таймауты)
  • Настраивает пулы соединений к базе и сервисам под нагрузку
  • Применяет вероятностные структуры (фильтр Блума, HyperLogLog) для экономии памяти

Практика. Найти причину роста p99 в учебном сервисе под нагрузкой (пул соединений, GC, блокировки) и подтвердить исправление замером.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Что такое фильтр Блума и где он применяется?Middle

Битовый массив и k хеш-функций. Добавление — выставить k бит; проверка — все k бит выставлены? Ответ «точно нет» или «возможно есть».

Полный разбор
Почему удвоение числа серверов не удваивает пропускную способность?Senior

Масштабируется только параллельная часть работы. Закон Амдала: если 5% работы последовательны, ускорение не превысит 20× при любом числе узлов. А координация между узлами (блокировки, согласование) может даже снижать пропускную способность после некоторого…

Полный разбор
Зачем нужен пул соединений к базе и как выбрать его размер?Middle

Установка соединения — TCP, TLS, аутентификация, а в PostgreSQL ещё и новый процесс: миллисекунды и память. Пул держит готовые соединения и ограничивает их число.

Полный разбор
Как один сервер держит сотни тысяч одновременных соединений?Senior

Модель «поток на соединение» упирается в память стеков и переключения. Решение — неблокирующие сокеты + epoll: один поток спрашивает ядро «какие из 100 000 сокетов готовы?» и обрабатывает только их.

Полный разбор
Почему время ответа измеряют перцентилями, а не средним?Middle

Распределение задержек сильно скошено: большинство запросов быстрые, но есть длинный хвост. Среднее его прячет, а p95/p99 показывает, что видят самые невезучие пользователи.

Полный разбор
Как найти самые популярные элементы в бесконечном потоке событий?Senior

Count-min sketch — таблица d × w счётчиков и d хеш-функций: при событии увеличиваем по одному счётчику в каждой строке, оценка частоты — минимум из d счётчиков. Только завышает, с ошибкой ≈ поток / w.

Полный разбор
Какие порядки задержек нужно знать разработчику?Middle

Наносекунды — процессор и кэши, ~100 нс — оперативная память, десятки–сотни микросекунд — SSD и сеть внутри дата-центра, миллисекунды — диск HDD и другой город, ~100 мс — другой континент.

Полный разбор
Почему при загрузке сервера 90% время ответа растёт в разы, хотя запас ещё есть?Middle

Запросы приходят неравномерно, и при высокой загрузке они ждут в очереди. Время ожидания растёт как ρ / (1 − ρ): при 50% загрузки ожидание равно времени обработки, при 90% — в 9 раз больше, при 99% — в 99.

Полный разбор
Как бороться с хвостовыми задержками в распределённой системе?Senior

Хвосты неизбежны: сборка мусора, фоновые задачи, соседи по машине, переключения. При fan-out они становятся нормой. Главные приёмы — не ждать медленного: дублирующие запросы, умная балансировка, частичные ответы.

Полный разбор
Что такое zero-copy и почему Kafka так быстро отдаёт данные?Senior

Обычная отдача файла: диск → page cache → буфер приложения → буфер сокета → сеть: 4 копирования и 4 переключения режима. sendfile передаёт данные из page cache в сокет внутри ядра — приложение их не трогает.

Полный разбор

← Вся карта «Backend-разработчик»

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

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

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

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