Ответ вслух Middle Как вести секцию обновлено

Оценка нагрузки сервиса фотографий

Вопрос

Сервис хранения фото: 10 млн DAU, каждый загружает в среднем 2 фото в день по 2 МБ и смотрит 50 фото. Оцените RPS загрузки и просмотра, объём хранения за год и исходящий трафик.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Загрузок 10 млн × 2 = 20 млн в сутки, делим на 10^5: около 200 RPS, в пике 500-600. Просмотров 10 млн × 50 = 500 млн, это около 5 000 RPS, в пике до 15 тысяч.

Что должно прозвучать в ответе

  • Загрузка: 2 × 10^7 / 10^5 ≈ 200 RPS в среднем, пик 500-600

  • Просмотр: 5 × 10^8 / 10^5 ≈ 5 000 RPS, пик 10-15 тысяч

  • Объём: 2 × 10^7 × 2 МБ = 40 ТБ в сутки, около 15 ПБ в год без реплик

  • Трафик просмотров: 5 000 × 2 МБ ≈ 10 ГБ/с в оригиналах, поэтому нужны превью и CDN

  • Вывод: объектное хранилище, CDN, генерация нескольких размеров, метаданные в БД

Что могут спросить следом

  • Как снизить объём хранения?
  • Сколько примерно стоит хранить 15 ПБ и что с этим делать?
  • Какую долю трафика заберёт CDN?

Разбор

Загрузок 10 млн × 2 = 20 млн в сутки, делим на 10^5: около 200 RPS, в пике 500-600. Просмотров 10 млн × 50 = 500 млн, это около 5 000 RPS, в пике до 15 тысяч. Объём: 20 млн × 2 МБ = 40 ТБ в сутки, за год около 15 ПБ, с репликацией втрое больше. Если отдавать оригиналы, исходящий трафик около 10 ГБ/с, это неподъёмно для origin. Выводы: файлы в объектное хранилище, при загрузке генерируем превью нескольких размеров (превью ~100-200 КБ), отдаём через CDN, метаданные в обычной БД. Для экономии: сжатие в современные форматы, перенос старых оригиналов в холодный класс хранения, дедупликация по хешу.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.