Назад | Перейти на главную страницу

Как максимизировать параллельную загрузку с S3

Мне нужно загрузить много изображений из Amazon S3 на одной странице, и иногда загрузка всех изображений занимает довольно много времени. Я слышал, что разделение изображений для загрузки из разных поддоменов поможет параллельной загрузке, но какова реальная реализация этого? Хотя его легко разделить на такие поддомены, как статические, изображения и т. Д .; Должен ли я создать 10 поддоменов (image1, image2 ...) для загрузки, скажем, 100 изображений? Или есть какие-нибудь хитрые способы сделать?

(Кстати, я подумываю об использовании memcache для кеширования изображений S3; я не уверен, возможно ли это. Буду признателен за любые дальнейшие комментарии. Большое спасибо!

Самое большое ускорение, которое вы получите, - это переход на CloudFront, CDN Amazon, который может быть перед S3 и значительно ускорить работу пользователей.

После того, как вы это сделаете, при желании вы можете создать несколько поддоменов CloudFront, которые все указывают на одну и ту же корзину S3, которые затем можно было бы случайным образом назначить изображениям, чтобы они загружались параллельно (по сути, ваша идея image1, image2).

Ваша идея разделить изображения на несколько CNAMES - хорошая идея, и ее лучше всего описывают лучшие практики Google: https://developers.google.com/speed/docs/best-practices/rtt#ParallelizeDownloads

Я постараюсь отсортировать свой ответ по пунктам, которые наверняка помогут с вашим статусом:

  • Поскольку мы говорим о статическом контенте, я предлагаю использовать Nginx в качестве обратного прокси для сервера вашего статического контента. Медленная загрузка может быть связана с превышением лимита одновременных подключений Apache.
  • Использование разных или нескольких поддоменов может помочь в масштабах самих браузеров, но, с другой стороны, может повлиять на глобальную скорость и рейтинг вашей страницы, так как ваши поддомены будут добавлять больше запросов на разрешение DNS, что не очень хорошо вещь.
  • Взгляните на что-то вроде: Cloudflare.com, у них есть несколько очень хороших бесплатных услуг, которыми можно воспользоваться.
  • Используйте заголовок кеширования браузера, это может быть большим подспорьем в случае, если ваш контент не меняется очень динамично.
  • Старайтесь, чтобы ваши статические скрипты (например, CSS, JS) всегда были максимально минимизированы.
  • Попробуйте использовать такую ​​услугу, как: http://tools.pingdom.com/fpt/ и http://gtmetrix.com/ поскольку они могут дать вам очень полезную информацию о производительности загрузки ваших страниц в дополнение к ценным советам для достижения лучших результатов.
  • Постарайтесь свести к минимуму количество запросов, генерируемых вашими страницами (например, объединение изображений разных стилей или макетов в меньшее количество изображений и управление ими с помощью CSS)

Хм .. это я имел в виду атм.