Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая
Вид материала | Курсовая |
- Калининградский Государственный Технический университет Экономический факультет Кафедра, 305.66kb.
- Курсовая работа защищена с оценкой, 18.89kb.
- Конференция «Безопасность информационных систем предприятия», 59.58kb.
- Московская финансово-юридическая академия «Согласовано» «Утверждено на 2007 / 2008, 21.72kb.
- О защите конкуренции, 1152.72kb.
- Институт информационных технологий Кафедра информационных и коммуникационных технологий., 195.33kb.
- Институт информационных технологий Кафедра информационных и коммуникационных технологий, 207.89kb.
- Уголовный кодекс российской федерации, 3723.74kb.
- Титульный лист программы обучения по дисциплине Syllabus, 456.17kb.
- Принят Государственной Думой 8 декабря 1995 года Глава I. Общие положения статья, 545.05kb.
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-страниц отображаются по мере загрузки ресурсов браузером, тем самым отображение загружаемых ресурсов может быть медленнее, чем отображение из кэша.
Кэширование связано и с финансовыми аспектами, так как влияет на задержки. Кэширование сокращает нагрузку на сеть провайдера. Неожиданная популярность у пользователей одного или двух ресурсов могут привести к перегрузке провайдера. Например, некоторые события, например, ожидание приговора суда, популярные спортивные мероприятия вызывают резкий всплеск обращений пользователей к определенным сайтам. Может оказаться дешевле приобрести кэширующий сервер, чем наращивать пропускную способность магистральной сети. Часть полосы пропускания, высвобожденная в результате кэширования, позволит провайдеру обслуживать большее число пользователей в пределах существующей инфраструктуры.
Даже при отсутствии неожиданных всплесков нагрузки провайдер обычно обязан платить своему вышестоящему провайдеру за полосу пропускания сети независимо от того, какую часть этой полосы он фактически использует. Сокращая объем загружаемых данных, провайдер может существенно сократить свои расходы. Провайдеры заключают соглашения по обмену трафиком друг с другом, если обмениваются примерно равными объемами данных. Такие соглашения требуют симметричного трафика, так что имеется сильный финансовый стимул сократить объем данных, передаваемых наружу из сети провайдера. В свою очередь, крупные провайдеры также используют соглашения об обмене трафиком. Кэширование может помочь провайдеру в конкурентной борьбе. Новый сервис может быть добавлен без боязни значительного ухудшения качества обслуживания клиентов.