Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая

Вид материалаКурсовая

Содержание


4.Зачем нужно кэширование?
Сетевое соединение.
Задержка, связанная с DNS.
Сетевая нагрузка и производительность сети.
Нагрузка на исходный сервер.
Время генерации ответа.
Воспроизведение ответа браузером.
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11
^

4.Зачем нужно кэширование?




Начнем с мотивации кэширования. Хостинговые компании платят за полосу пропускания используемых каналов, и, естественно, кэширование может помочь им сократить свои расходы. От кэширования могут получить выгоду все участники обмена Web-сообщениями. Конечные пользователи получают значительный выиг­рыш от кэширования, так как уменьшаются задержки при получении ответов. Зна­чительная доля разрывов соединений, происходящих во время сеансов взаимодей­ствия с Web-сайтами, обычно связано недостаточно быстрым получением ответов пользователями. Пропускная способность сети снижается из-за повторных передач утерянных данных. Если предположить, что перегрузка возникает в различных точках Internet, то может оказаться полезным сокращение трафика или перенос его от магистральных сетей к периферии. Это дает двойную выгоду на уровне сети: пе­редаются только полезные данные, а высвободившаяся пропускная способность может быть использована для передачи дополнительных данных. Расстояние кэша от пользователя также является существенным фактором при определении выиг­рыша пользователя от использования кэша. Близкий к пользователю кэш может существенно уменьшить время ожидания ответа по сравнению с кэшем, располо­женным ближе к серверу.

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

• пропускная способность соединения пользователя с провайдером и провайде­ра с Internet;

• если ответ на запрос к DNS-серверу отсутствует в кэше, то затрачивается время на обращение к DNS-серверу для преобразования доменного имени в IP-адрес;

• возникающие на пути между пользователем и исходным сервером заторы в сети;

• перегрузка исходного сервера;

• время создания ответа;

• время отображения ответа браузером.

^ Сетевое соединение. Задержка передачи данных между клиентом и провайде­ром меняется существенно меньше, чем задержка в Internet. Если содержание рас­положено достаточно близко к провайдеру, то тогда можно достаточно точно пред­сказать время ожидания ответа. Если скорость соединения провайдера с Internet высокая, то ответ будет доставляться до провайдера достаточно быстро. Однако если скорость соединения небольшая, то время передачи ответа в сеть провайдера может составлять основную часть общего времени ожидания ответа. Кроме того, если соединение между провайдером и исходным сервером невозможно в момент запроса, то кэш провайдера может вернуть ответ. Ответ может оказаться устарев­шим, однако в некоторых случаях это может быть не так важно. В ряде случаев от­веты исходных серверов персонализированы и поэтому отсутствуют в кэше.

^ Задержка, связанная с DNS. Увеличение времени жизни (TTL) таблиц соответ­ствий между доменными именами и IP-адресами в DNS также может сократить об­щее время ожидания ответа, поскольку соответствие между доменным именем и IP-адресом меняется не слишком часто. Некоторые схемы кэширования могут не только располагать Web-содержание ближе к пользователю, но и уменьшать время поиска соответствия между доменным име­нем и IP-адресом. Расположение Web-содержания ближе к пользователю означает уменьшение сетевого расстояния (т.е. числа промежуточных передач) ответа. Кэши­рующий прокси-сервер может хранить список часто используемых доменов и тем са­мым сокращать задержки, связанные с DNS-операциями.

^ Сетевая нагрузка и производительность сети. Сокращение числа промежуточ­ных передач пакетов может увеличить пропускную способность между клиентом и сервером, на котором размещено Web-содержание. Поскольку TCP является ос­новным протоколом транспортного уровня для HTTP, то сокращение времени про­хождения пакетов от клиента к серверу и назад (RTT) повышает производитель­ность. Производительность TCP обратно пропорциональна RTT. Уменьшение чис­ла промежуточных передач приводит также к уменьшению вероятности задержек в промежуточных точках из-за перегрузок. Большое число пакетов в сети может вызвать перегрузку сети, приводя­щую к утере пакетов. Утерянные пакеты должны быть переданы повторно. Если в результате кэширования уменьшается нагрузка на сеть, то оставшиеся данные могут быть переданы быстрее. Отправитель TCP-пакетов для более полного ис­пользования сети может увеличить размер скользящего окна.

^ Нагрузка на исходный сервер. Исходный сервер может также выиграть от кэ­ширования. Если будут кэшироваться наиболее популярные ответы, то нагрузка сервера сократится, поскольку существенно уменьшится количество запросов, дос­тигающих этого сервера. Сервер сможет обработать большее количество запросов пользователей без постановки в очередь соединений транспортного уровня, без за­держек в обработке HTTP-запросов. Исходный сервер переносит задачу обработки запросов на вспомогательные кэширующие прокси-серверы. Исходный сервер мо­жет также поддерживать долговременные соединения с меньшим числом клиентов, и эти соединения дольше могут оставаться открытыми. Время на генерацию из­лишних ответов сокращается, оставляя больше времени на выполнение сервером других задач.

^ Время генерации ответа. Время генерации ответа на запрос может быть сокра­щено путем изменения архитектуры Web-сервера. Если обработка входящих за­просов требует немного ресурсов сервера (т.е. циклов процессора), то на генерацию ответа их тратится гораздо больше. Если генерация ответа будет занимать значи­тельную часть времени ожидания ответа пользователем, а кэширование полностью отсутствует, то такая задержка будет наиболее значимой. Кроме того, если архитек­тура Web-сервера требует последовательной обработки запросов, то генерация длинного ответа будет негативно сказываться на обработке остальных запросов данного соединения.

^ Воспроизведение ответа браузером. Браузер должен синтаксически проанали­зировать и отобразить ответ. Время на анализ ресурса браузером не может быть со­кращено кэшированием, если только не хранить версию воспроизводимой страницы, непосредственно в оперативной памяти браузера. Чтение и воспроизведение требует времени, даже если ответ записан в кэш браузера. Однако поскольку весь документ доступен локально, то для отображения ответа могут быть использованы различные технологии. Например, браузер может изменить процесс отображения содержания документа, если все встроенные изображения уже имеются в наличии. Большинство Web-страниц отображаются по мере загрузки ресурсов браузером, тем самым ото­бражение загружаемых ресурсов может быть медленнее, чем отображение из кэша.

Кэширование связано и с финансовыми аспектами, так как влияет на задержки. Кэширование сокращает нагрузку на сеть провайдера. Неожиданная популярность у пользователей одного или двух ресурсов могут привести к перегрузке провайдера. Например, некоторые события, например, ожидание приговора суда, популярные спортивные мероприятия вызывают резкий всплеск обращений пользователей к определенным сайтам. Может оказаться дешевле приобрести кэширующий сервер, чем наращивать пропускную способность магистральной сети. Часть полосы пропуска­ния, высвобожденная в результате кэширования, позволит провайдеру обслуживать большее число пользователей в пределах существующей инфраструктуры.

Даже при отсутствии неожиданных всплесков нагрузки провайдер обычно обя­зан платить своему вышестоящему провайдеру за полосу пропускания сети незави­симо от того, какую часть этой полосы он фактически использует. Сокращая объем загружаемых данных, провайдер может существенно сократить свои расходы. Про­вайдеры заключают соглашения по обмену трафиком друг с другом, если обмени­ваются примерно равными объемами данных. Такие соглашения требуют симмет­ричного трафика, так что имеется сильный финансовый стимул сократить объем данных, передаваемых наружу из сети провайдера. В свою очередь, крупные про­вайдеры также используют соглашения об обмене трафиком. Кэширование может помочь провайдеру в конкурентной борьбе. Новый сервис может быть добавлен без боязни значительного ухудшения качества обслуживания клиентов.