Оптимизация загрузки больших файлов с помощью Azure сеть доставки содержимого

Размеры файлов, передаваемых через Интернет, продолжают расти в результате расширения функциональности, улучшения графики и расширенного мультимедийного содержимого. Этот рост зависит от многих факторов: широкополосное проникновение, более крупные недорогие устройства хранения, широкое увеличение видео высокого определения и подключенные к Интернету устройства (IoT). Чтобы обеспечить комфорт пользователей, крайне важно обеспечить быстрый и эффективный механизм доставки для файлов большого размера.

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

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

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

Оптимизация доставки больших файлов с помощью Azure сеть доставки содержимого от Майкрософт

Конечные точки Azure CDN уровня "Стандартный" от Майкрософт доставляют большие файлы без ограничения на размер файла. Дополнительные функции включены по умолчанию, чтобы ускорить доставку больших файлов.

Фрагментирование объекта

В Azure CDN уровня "Стандартный" от Майкрософт используется метод, называемый фрагментированием объекта. При запросе большого файла сеть доставки содержимого извлекает меньшие части файла из источника. После получения полного или байтового запроса на отправку содержимого сервер POP-сервера сети доставки содержимого отправляет файл из источника в блоках 8 МБ.

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

Дополнительные сведения о запросе диапазона байт см. в разделе RFC 7233.

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

Условия для оптимизации больших файлов

Ограничения на максимальный размер файла отсутствуют.

Поддержка кодирования блочной передачи

Сеть доставки содержимого Майкрософт поддерживает ответы на кодировку передачи, но не более 8 МБ. В случае блокированных ответов передачи, превышающих 8 МБ, сеть доставки содержимого Майкрософт будет кэшировать только и обслуживать начальные 8 МБ содержимого.

Оптимизация доставки больших файлов с помощью Azure сеть доставки содержимого из Edgio

Azure CDN уровня "Стандартный" из Edgio и Azure CDN Premium из конечных точек Edgio доставляют большие файлы без ограничения размера файла. Дополнительные функции включены по умолчанию, чтобы ускорить доставку больших файлов.

Завершение заполнения кэша

Функция заполнения кэша по умолчанию позволяет сети доставки содержимого извлекать файл в кэш при отказе или потере начального запроса.

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

Поведение по умолчанию можно отключить с помощью обработчика правил в Azure CDN Premium из Edgio.

Заполнение однорангового кэша "горячими" данными

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

Условия для оптимизации больших файлов

Функции оптимизации больших файлов для Azure CDN standard из Edgio и Azure CDN Premium из Edgio включены по умолчанию при использовании общего типа оптимизации веб-доставки. Ограничения на максимальный размер файла отсутствуют.

Другие вопросы

Рассмотрим следующие аспекты этого типа оптимизации:

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

  • Нагрузка на оперативную память и операции ввода/вывода в источнике снижаются, так как передаются более мелкие фрагменты файлов.

  • Для блоков, кэшированных в сети доставки содержимого, нет других запросов к источнику до истечения срока действия содержимого или вытеснения из кэша.

  • Пользователи могут выполнять запросы диапазона к сети доставки содержимого, которые обрабатываются как любой обычный файл. Оптимизация применяется только в том случае, если файл имеет допустимый тип и если диапазон байт находится между 10 МБ и 150 ГБ. Если средний размер запрошенного файла меньше 10 МБ, используйте оптимизацию для общей веб-доставки.