Каков эффективный способ хранения медиа-файлов? - PullRequest
0 голосов
/ 19 апреля 2011

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

Какие могут быть хорошие способы решения этой проблемы?

Выделенный сервер только для медиафайлов?
Облако?

1 Ответ

1 голос
/ 20 апреля 2011

Файлы мультимедиа отличаются от тех частей вашей системы, которые содержат логику приложения, тем, что обслуживание файлов мультимедиа является интенсивной задачей ввода-вывода, в то время как логика приложения обычно требует некоторой комбинации ввода-вывода и процессора (точный баланс очень зависимый). Вот почему действительно имеет смысл использовать выделенную мультимедийную систему, оптимизированную для пропускной способности диска и сети.

Некоторые общие рекомендации, если вы используете собственный выделенный сервер:

  • Инвестируйте в большое количество оперативной памяти и используйте кеширование для наиболее часто используемого контента. Идея состоит в том, чтобы сэкономить время доступа к диску (теоретически ОЗУ примерно в 100 раз быстрее). Memcache - самое популярное решение в наши дни.
  • Инвестируйте в быстрый дисковый ввод-вывод, устанавливайте несколько дисков и используйте RAID (чередование) для повышения пропускной способности.
  • При выборе хостинг-провайдера для вашего выделенного / совместного сервера (ов), сосредоточиться на пропускной способности.
  • Если возможно, вы хотите расположить файлы рядом с их потребителями, чтобы уменьшить задержки в сети. Так, например, мультимедийные файлы на бразильском португальском языке выиграют, если будут храниться на сервере в Южной Америке.
  • Хороший CDN может решить практически все вышеперечисленное. По моему опыту, это снизило нагрузку на наши собственные серверы на ~ 85%. Мы используем Котендо и Акамаи. Другие провайдеры, которых вы можете посмотреть на ottomh: CDNetworks, Limelight, Level3.

Если вы только начинаете, то лучше всего использовать S3 для хранения ваших файлов с CloudFront в качестве CDN. По моему собственному опыту, это очень простое в настройке решение и довольно рентабельное при запуске - поскольку затраты растут линейно с количеством данных и использованием. За пределами определенного порога имеет смысл начать с управления собственными выделенными стойками хранения и использовать некоторые другие CDN.

...