В данной работе рассматриваются факторы, влияющие на производительность Web-служб, а также приводится обзор проблем, связанных с производительностью. Здесь можно найти общее описание методики разработки простых количественных моделей с целью анализа проблем производительности. Производительность Web-служб можно связать со временем обслуживания запроса Web-службой и сетевой задержкой (которая включает все задержки, происходящие где-то между браузером клиента и поставщиком Web-службы). По мере эволюции Web, увеличивается сложность сети, а в сетевое окружение добавляются новые устройства, такие как карманные компьютеры (personal digital assistant, PDA) и мобильные телефоны. Еще одна проблема, влияющая на производительность Web-служб, возникает при использовании беспроводных линий связи, с их относительно малой полосой пропускания и большой задержкой, а также отсутствием постоянной связи между компонентами.
Глава начинается с рассмотрения базовых концепций, связанных с Web-службами. Затем мы рассмотрим восприятие производительности Web-среды с точки зрения конечного пользователя. После анализа источников задержек в Web, мы обсудим инфраструктуру и отдельные компоненты, занятые при выполнении Web-служб, проанализируем их мощность и производительность.
Ключевыми компонентами интрасетей и Internet являются серверы. В ответ на запросы они выдают информацию в виде текста, изображений, звуковых и видеофайлов, а также их разнообразные комбинации (т.е. мультимедиа). Web-службы, доступные в интрасетях и Internet, обеспечиваются большим количеством различных серверов, использующих широкий спектр аппаратного и программного обеспечения. В этих сетях серверы получают, хранят и передают дальше информацию. Поддержка Web-служб обеспечивается несколькими типами серверов: Web-серверами, серверами транзакций, прокси-серверами, кэш-серверами, беспроводными шлюзовыми серверами (wireless gateway servers) и зеркальными серверами. Большинство клиентов интрасетей и Internet - это Web-браузеры, вместе со своими приложениями, к которым относятся: электронная почта, FTP и telnet. Программное обеспечение браузера позволяет настольному компьютеру связываться с любым другим клиентом сети TCP/IP и любым сервером сети, имеющим конкретный URL-адрес. Бизнес становится все более зависимым от использования Web-служб, поэтому их рабочие характеристики (т.е. производительность) становятся жизненно важными. Чем больше информации и услуг можно получить на Web-сайте компании, тем больше запросов он получает. А чем больше запросов получает Web-сайт, тем больше вероятность, что пользователи слишком долго будут ждать реакции на свой запрос. И тогда, как правило, Web-пользователи (возможные покупатели) будут разочарованы и переключатся на другой сайт.
Проблемы производительности применительно к Internet усиливаются непредсказуемой природой запросов на информацию и службы в Web. Например, какое-то время на сайты практически не приходят запросы, поскольку нет посетителей. Внезапно, без предупреждения, трафик возрастает в десятки раз. Такой тип пиковой нагрузки, также известной как "мгновенное возрастание спроса" ("flash crowds"), наблюдается на очень многих Web-сайтах. Производительность Web-сайтов сильно варьируется в зависимости от множества факторов, таких как географическое расположение клиентов и серверов, день недели и время дня. Существуют также и другие характеристики, по которым Web-системы отличаются от традиционных систем с архитектурой клиент-сервер. Например, размеры объектов (текстов, графики, видео, аудио), получаемых из Web-сайтов, варьируется от 103 до 107 байт. Экспериментальные исследования [5, 12] позволили выделить некоторые свойства и инварианты (постоянные составляющие) WWW-нагрузки. Эти свойства будут рассматриваться в настоящей работе . Проблема производительности Web-служб усложняется тем, что существует большое количество роботов, т.е. автономных программных агентов, которые взаимодействуют с Web-сайтами и потребляют значительное количество системных ресурсов. Сочетание перечисленных уникальных характеристик Web приводит к появлению новых видов проблем производительности, к которым, в первую очередь, относятся слишком большая нагрузка на сервер и "узкие места" сети, оказывающих критическое влияние на производительность с точки зрения конечного пользователя. Вопросы производительности постоянно волнуют руководство любой компании. Существуют шесть основных тем, которые рассматриваются при анализе производительности Web-служб: содержимое сайта, программное обеспечение сервера, оборудование, приложения, пропускная способность сети и инфраструктура. В настоящей главе будут рассматриваться вопросы производительности, связанные с перечисленными шестью темами.
1.1 Web-службы
По мере развития Web у пользователей постепенно отпала необходимость обращения к функциональным блокам, подсистемам хранения информации, а также непосредственно к сети, и они стали видеть только службы, предоставляемые с помощью этих устройств. Иными словами, Web-служба - это услуга, получаемая через Internet, которая выполняет поставленные задачи или производит транзакции [29]. Web-службы обладают модульной структурой и являются самодостаточными модулями, которые можно описать, опубликовать и выполнить через Internet. Web-служба может представлять собой бизнес-процесс, приложение и даже вычислительный ресурс. К примерам Web-служб можно причислить все, начиная с услуг электронных платежей и заканчивая услугами распространения содержимого и хранения информации. Web-службы можно автоматически вызывать из приложений, а не только из браузеров.
Web-служба может выполняться на одном сайте или быть комбинацией нескольких других служб, выполняемых на разных сайтах. В любом случае, производительность службы зависит от подчиненной ей инфраструктуры, состоящей из приложений, серверов и сетей. К ухудшению производительности Web-службы могут приводить многие факторы. Наиболее часто встречающиеся проблемы связаны с недостаточной пропускной способностью при пиковой нагрузке, слишком большой нагрузкой на серверы, скачками нагрузки на сервер, передачей динамически меняющейся информации, нехваткой количества соединений между серверами приложений и серверами баз данных, отказами услуг, предоставляемыми третьими сторонами, и передачей мультимедиа-информации. Следовательно, для выявления факторов, ухудшающих производительность, важно понять поведение поставщика Web-службы.
Главными вопросами для среды Web-службы являются расширяемость и производительность. Что будет, когда 10 000 конкурирующих пользователей затребуют одну и ту же Web-службу? Каким образом поставщики Web-службы гарантируют ее качество? Как поставщик Web-службы дифференциирует качество службы для различных потребителей на основе соглашений SLA? Именно так выглядят типовые вопросы, с которыми доводится сталкиваться проектировщикам и администраторам Web-служб.
Пример ________________________________________________
Портал В предлагает службы по оплате счетов через Web. С помощью этой Web-службы пользователь может перечислять деньги со своего счета на оплату счетов по коммунальным услугам, приобретениям товаров и прочим отраслям сферы

обслуживания, телефонных счетов, а также пополнять счет кредитной карточки. Архитектура службы показана на рис. 1.1. Web-служба по оплате счетов использует службы, реализуемые другими поставщиками, такие как авторизация платежа (т.е. разрешение на платеж), электронный перевод средств и аутентификация пользователя. Пусть указанные службы обеспечиваются поставщиками Y, W и Z соответственно. Соглашения по уровню обслуживания (SLA), принятые между компанией В и поставщиком Y (предоставляющим услугу по авторизации платежа), гарантируют скорость обработки запросов поставщиком Y (который является "третьей стороной") 100 транзакций/с. Руководство портала В желает узнать производительность службы, предоставляемой порталом В, в транзакциях/с.
Выполнение службы порталом В эквивалентно последовательности посещений запросом поставщиков служб [11]. Каждое посещение поставщика соответствует транзакции, выполняемой поставщиком. В среднем, каждая транзакция для службы по оплате счетов требует двух посещений поставщика услуг авторизации платежей. Среднее количество посещений на один запрос к конкретному поставщику службы i назовем коэффициентом посещений (visit ratio) и обозначим через V-,. Пропускную способность поставщика службы i обозначим через Х{. Пропускную способность службы портала В обозначим как Хй. Закон формирования пропускной способности устанавливает связь Х0 с Х; и Vf.
Х,= У,*Хо
Для службы поставщика Y (авторизации платежа) имеем: Хг= 100 и VY = 2. Следовательно, портал В способен обрабатывать 50 запросов на обслуживание в секунду (Х0 = 50 запросов/с).
1.2. Обзор Web-серверов
Web-сервер - это сочетание аппаратной платформы, операционной системы, серверного программного обеспечения и содержимого (см. рис. 1.2). Все эти компоненты оказывают влияние на производительность Web-серверов и интрасетей. Далее приводится обзор параметров Web-серверов, влияющих на производительность реализуемых ими Web-служб.
1.2.1. HTML и XML
Большинство документов в Web написаны на простом "языке разметки", который называется HTML (HyperText Markup Language - язык гипертекстовой разметки) [6]. Язык HTML позволяет описать структуру документа, указав заголовки, выделения, ссылки на другие документы и т.д. В HTML-документы можно встраивать изображения и другие мультимедиа-объекты. HTML позволяет интегрировать в Web видео, программные приложения и мультимедиа-объекты. Большинство HTML-документов состоят из текста и встроенных изображений. Каждому встроенному изображению соответствует ссылка, указывающая на файл изображения, который браузер поместит в документ при его просмотре. (Файл изображения хранится на сервере, где и основной HTML-файл.) При анализе браузером HTML-данных, полученных от сервера, он распознает ссылки, связанные со встроенными изображениями, и автоматически посылает запросы на файлы этих изображений. На самом деле HTML-документ со встроенными изображениями -это сочетание множества объектов, поэтому он генерирует множество отдельных запросов к серверу. В отличие от пользователя, который видит только один документ, сервер наблюдает серию отдельных запросов, производимых для этого документа. С целью улучшения производительности с точки зрения конечного пользователя некоторые браузеры начинают запрашивать изображения до того, как клиент получает полный текст документа. В терминах производительности системы, важно понять, что один единственный щелчок пользователя может привести к генерации целой последовательности файловых запросов к серверу.
В языке HTML используются дескрипторы (директивы языка, заключенные в скобки вида < и >) и атрибуты, которые указывают, как браузер должен визуализировать Web-страницу. В языке XML (Extensible Markup Language - расширяемый язык разметки) также используются дескрипторы и атрибуты для разграничения фрагментов данных, а интерпретация значений этих дескрипторов и атрибутов возлагается на приложение. Разработчики на XML имеют право определять собственные наборы дескрипторов для конкретной предметной области. Они могут даже описывать типы документов, с которыми должно работать их приложение, в формате DTD (Document Type Definition - определение типа документа).
1.2.2 Оборудование и операционная система
Производительность сервера зависит, в основном, от поведения его главных компонентов: оборудования и операционной системы. С точки зрения оборудования производительность сервера - это функция от количества и скорости процессоров,объема оперативной памяти, пропускной способности и объема хранимой информации в дисковой подсистемые а также пропускной способности сетевого адаптера.
Web-серверы могут работать поверх многопользовательских операционных систем, функционирующих в режиме разделения времени, таких как Unix, Windows NT, Windows 2000, Linux и др. Надежность, эффективность функционирования, расширяемость и устойчивость - вот основные характеристики, которые следует учитывать при выборе операционной системы. Как в ОС реализован стек протоколов TCP/IP является ключевым вопросом производительности для протокола HTTP.
1.2.3 Содержимое сервера
Реальная ценность Web-сайта зависит от соответствия и качества информации, которую сайт содержит. Обычно на Web-сайте собрано несколько видов содержимого: HTML-документы, изображения, видео- и аудиообъекты. Объем и структура содержимого сервера, количество ссылок оказывают влияние на производительность интрасетей и Web-служб. Например, популярная страница с "тяжеловесной" графикой будет сильно влиять на производительность сетевого соединения с сайтом. Поэтому, во избежание создания "узкого места" в смысле трафика, имеет смысл дублировать наиболее популярные страницы на зеркальном сервере.
2. Восприятие производительности
Надежность Web-службы является, пожалуй, наиболее главным ее качеством для пользователя. Производительность Web-службы можно анализировать с различных точек зрения. Например, с точки зрения конечного пользователя, главные качества - это малое время отклика и нулевое число отказов в доступе. С другой стороны, с точки зрения руководства компании, которой принадлежит Web-служба, также важны высокая пропускная способность и высокая готовность. Но и в первом, и во втором случаях существует потребность в количественных оценках, описывающих поведение Web-службы.
Web-средам присущи несколько уникальных характеристик, отличающих их от традиционных распределенных систем. Из них некоторые оказывают весьма существенное влияние на производительность Web-служб. Во-первых, количество пользователей исчисляется сотнями миллионов и продолжает возрастать. Случайный характер процесса посещения пользователями сайтов усложняет проблему прогнозирования нагрузки на сайт и планирования производительности. Кроме того, Web характеризуется большим разнообразием компонентов: различные браузеры и серверы работают на разнообразных платформах с различными возможностями. Многообразие компонентов усложняет проблему мониторинга и сбора данных о функционировании Web-служб. Таким образом, в зависимости от пропускной способности соединения и перегруженности каналов связи, пользователи могут испытывать ощутимые, изменяющиеся по длительности и непредсказуемые задержки сети.
2.1 Показатели производительности
Время отклика и пропускная способность - это два наиболее важных показателя производительности Web-систем. Обычно под пропускной способностью Web-службы понимают скорость обслуживания HTTP-запросов, измеряемую количеством HTTP-операций в секунду. Из-за большого разнообразия размеров запрашиваемых Web-объектов, пропускную способность также измеряют в битах в секунду (бит/с, bps).
Для оценки производительности Web-служб применяются и другие показатели. Наиболее часто используемый из них - индекс популярности, или число попаданий. При подсчете числа попаданий учитываются любые соединения с Web-сайтом, в том числе запросы ко встроенным изображениям страницы, а также ошибки. Во время запроса одной страницы может генерироваться несколько попаданий, в зависимости от типов файлов, входящих в состав HTML-страницы. Сейчас количество попаданий уже не является главным показателем производительности, поскольку для различных сайтов его важность существенно варьируется. Последовательность запросов к страницам одного и того же сайта, производимая пользователем, называется посещениями (visits). А серия последовательных связанных друг с другом запросов, производимых во время одного посещения, называется сеансом (session). Один сеанс или посещение отделяется от следующего тайм-аутом (примерно 30 минут). Если пользователь не обращается к сайту в течение времени тайм-аута, то следующее обращение пользователя к сайту приводит к началу нового сеанса.
Некоторые компании предлагают службы по измерению времени отклика с точки зрения пользователя. Они периодически опрашивают Web-службу с помощью распределенной географически сети агентов. Такой опрос дает аппроксимацию реального времени отклика с точки зрения пользователей с различными географическими местоположениями [28].
Увеличение количества ошибок в секунду - это индикатор ухудшения функционирования Web-службы. Под ошибкой понимается любой отказ при попытке взаимодействия с сервером. Примером ошибки может служить переполнение очереди незавершенных соединений сервера. При этом попытки клиента соединиться с сервером будут игнорироваться. Вследствие этого клиент станет повторно передавать свой запрос до тех пор, пока в очереди не появится свободное место или до истечения предписанного момента времени.
В случае Web-служб с протоколом потоковой передачи применяются иные показатели производительности Web-служб с точки зрения конечного пользователя. Здесь более важными, чем время загрузки, будут такие показатели, как задержка установки связи (startup latency) и дрожание или неустойчивая синхронизация (jitter). Несмотря на то что задержка установки связи влияет на восприятие пользователями сайта, в то же время она является непродолжительным, однократно действующим фактором производительности сайта, т.е. он измеряется один раз на запрос и не отражает качество всего сеанса.Итак, к наиболее часто используемым показателям производительности Web-служб относятся:
• время отклика при сквозной передаче данных;
• время отклика сайта;
• пропускная способность, запросов/с;
• пропускная способность, Мбит/с;
• количество ошибок в секунду;
• количество посетителей в день;
• количество уникальных посетителей в день.
Пример _______________________________________________________
Web-сайт туристического агентства отслеживался в течение 30 минут. За это время на сайт поступило 9000 HTTP-запросов. Сервер поставляет три вида объектов: HTML-страницы, изображения и видеоклипы. По наблюдениям установлено, что HTML-страницы составляют 30% всех запросов и имеют средний размер 11 200 байт. Изображения составляют 65% запросов и имеют средний размер 17200 байт. Видеоклипы составляют только 5% от общего количества запросов. Средний размер видеофайла составляет 139 000 байт. Какова пропускная способность сервера?
Пропускная способность, выраженная в запросах/с, составит: 9000 / (30 х 60) = 5 запросов/с. Однако, этот показатель не дает никакого представления о пропускной способности сети, используемой в наблюдаемый период, и ничего не говорит о размере запрашиваемых объектов. Таким образом, для оценки пропускной способности сети или сетевого адаптера нам нужно рассчитать пропускную способность в Кбит/с. Для этого вычислим пропускную способность для каждого вида объектов:
Пропускная способность = (общее количество запросов х доля объектов рассматриваемого вида х средний размер) / период наблюдения.
Получаем:
Пропускная способность для HTML = 9000 х 0.30 х (11 200 х 8) / 1800 =
= 131.23 Кбит/с
Пропускная способность для изображений = 9000 х 0.65 х (17 200 х 8) / 1800 =
= 136.72 Кбит/с
Пропускная способность для видео = 9000 х 0.05 х (139 000 х 8) / 1800 =
= 587.12 Кбит/с.
Общая пропускная способность - это сумма пропускных способностей для каждого вида объектов:
Пропускная способность = 131.25 + 136.72 + 857.12 = 1125.39 Кбит/с.
Несложно сделать вывод, что для обеспечения рассчитанного Web-трафика сетевое соединение должно быть, по крайней мере, линией Т1.
2.2 Качество обслуживания
Качество обслуживания (Quality-of-Service, QoS) Web-служб, предоставляемых поставщиками, играет решающую роль в привлечении и удержании пользователей. Например, разочарованные потребители покидают многие сайты электронной коммерции и более к ним не возвращаются, что приводит к потере доходов. Каким образом руководство компании определяет качество Web-служб? Чтобы ответить на этот вопрос, рассмотрим несколько примеров из различных отраслей промышленности. Когда кто-нибудь думает о качестве услуг, предлагаемых компаниями мобильной связи, в сознании естественным образом возникают следующие показатели:
• Бесперебойное обслуживание 21 часа в сутки;
• Низкий показатель сброса звонков;
• Большая площадь покрытия;
• Быстрое восстановление в случае возникновения проблем;
• Точные, подробные и понятные счета на оплату услуг;
• Стоимость.
С точки зрения потребителя приведенный выше список характеристик службы определяет имидж компании. Более того, эти показатели характеризуют уровень услуг, предоставляемых потребителю за определенную цену. Предполагаемые уровни обслуживания управляют взаимоотношениями между потребителем и компанией. Если показатель сброса звонков возрастает больше обычного, или время ремонта превышает все допустимы пределы, потребители выражают свое недовольство качеством услуг, обеспечиваемым телефонной компанией. Источник проблем для потребителей совершенно не важен. Они не видят переключения сети, передатчика базовой станции и каналов, составляющих телефонную систему. Потребитель видит уровень услуг, обеспечиваемых компанией.
В Web-среде пользователь не беспокоится о "пробках", перегруженных серверах, пропускной способности сети или других показателях функционирования системы. Помимо содержимого и эстетики, пользователи, работающие в сети, желают видеть высокий уровень производительности, возможностей и безопасности. Для потребителя в сети качество обслуживания означает скорость, прогнозируемое время отклика на запрос и работоспособное состояние по схеме 21 х 7 (21 часа в сутки и 7 дней в неделю). Любое снижение уровня обслуживания Web-сайта тут же замечается, причем далеко не одним пользователем. Показатели QoS для сетевых служб должны представлять время отклика, эффективность, надежность, предсказуемость и стоимость.
Говорят, что Web-служба доступна, когда она "жива" и востребована потенциальным потребителем. Готовность (или доступность) является показателем, используемым для представления количества времени, в течение которого служба доступна. Надежность определяется как вероятность того, что Web-служба будет работать удовлетворительным образом в течение данного периода времени при определенных условиях эксплуатации и нагрузки. В этом определении особое внимание уделяется элементам вероятности, адекватным характеристикам производительности и эксплуатационным условиям. Необходимость в высоконадежных Web-службах с высоким коэффициентом готовности испытывает все большее и большее количество компаний, и все большее число потребителей полагаются на них, удовлетворяя свои деловые и личные потребности.
Для того чтобы отслеживать качество обслуживания (QoS) собственных Web-сайтов, компании должны измерять трафик, производительность и интенсивность использования. После оценки качества обслуживания, руководство должно принять решение, существует ли необходимость в дополнительных возможностях, дабы постоянно немного опережать потребительский спрос. По мере роста спроса на Web-службы, технологическая инфраструктура Web-сайтов и Internet должна обладать достаточными возможностями для спокойной реакции на изменения в спросе. Инфраструктура должна быть создана таким образом, чтобы информационные службы соответствовали спросу. Например, иногда очень сложно получить доступ к сайтам крупных газет и телекомпаний, поскольку после сообщения важных новостей они оказываются перегруженными. Как заметил Хеннесси [20], "по- • добное случается как раз в те самые важные моменты, когда служба просто жизненно необходима".
Ответы на следующие вопросы помогают установить набор соглашений по уровню обслуживания (service-level agreements, SLA) для Web-служб:
•
Заключается ли цель службы в предоставлении информации и приложений
внешним потребителям?
• Зависят ли наиболее важные бизнес-операции от Web-служб?
•
Желают ли компании располагать высококачественными бизнес-услугами,
которые доступны 21 часа в сутки 7 дней в неделю, и является ли высокая
производительность решающим моментом?
Если Web-службы являются частью зависящих от целевого назначения приложений, потребуется определить адекватные показатели для измерения уровня обслуживания, предлагаемого конечным пользователям. Обычно во время пиков измеренные значения параметров существенно отличаются от средних значений.
Однако потребители в Web желают получать службы хорошего качества в любое время. Вот почему планирование возможностей для пиковых периодов настоль важно.
3. Проблемы Web-служб
Источник проблем имеет смысл определять до того, как предпринимать попытки изменения программного обеспечения, модернизации оборудования или установки более скоростных линий передачи данных, надеясь на возрастание производительности. В этом разделе мы рассмотрим, как выполняется типовая Web-транзакция, и попытаемся вскрыть основные источники задержек.
Эталонная модель Web-задержек, показанная на рис. 1.3, создает структуру для анализа эффективности Web-транзакций. Она группирует задержки, связанные с выполнением Web-служб, по четырем категориям: 1) этап поиска в DNS; 2) этап установки TCP-соединения; З) время выполнения на сервере; 1) время пребывания в сети. Первый шаг при выполнении Web-транзакции связан с поиском информации в DNS, когда браузер преобразует имя сервера, указанное в URL-адресе, в IP-адрес с целью установки TCP-соединения. Если имя сервера не может быть разрешено при помощи локального кэша, запрос отправляется на DNS-сервер более высокого уровня. Выяснилось, что для ведущих сайтов электронной коммерции в среднем на поиск в DNS тратится от 0.01 до 0.11 с. Самые быстрые сайты затрачивают на поиск в DNS 0.001 сек [26]. В следующем разделе подробно рассматриваются остальные три источника задержек.
3.1 Анатомия Web-транзакции
В распределенных системах, подобных WWW, если что-то идет не так, как запланировано, ответственность за плохую производительность настолько расплывчата, что винить в этом просто некого. Таким образом, первый шаг к тому, чтобы уладить проблему эффективности работы систем, основанных на Web-технологиях, заключается в понимании того, что происходит после щелчка кнопкой мыши на некоторой ссылке. Давайте изучим анатомию Web-транзакции, которая показана на рис. 1.1. Разложим типовую транзакцию на основные задачи, выполняемые в трех базовых компонентах Web-системы: браузере, сети и сервере [10].

1. Браузер
•
Конечный пользователь щелкает мышью по гиперссылке и запрашивает до
кумент.
•
Клиентский браузер ищет запрашиваемый документ в локальном кэше и в
случае удачи возвращает документ. В этом случае время ответа пользовате
ля обозначается как
R
Browser,
wi-
• В случае отсутствия документа:
—
Браузер запрашивает
DNS-службу
на предмет установки соответствия
между именем хоста сервера и его
IP-адресом.
—
Клиент открывает
TCP-соединение
с сервером, определенным в
URL-ад
ресе гиперссылки.
— Клиент отправляет серверу соответствующий HTTP-запрос.
•
После получения ответа от сервера, браузер
форматирует и отображает на
экране документ и визуализирует связанные с ним изображения. Возвращае
мый документ сохраняется в кэше браузера.
Пусть
R
Browser.miss
- это общее
время
обработки запроса браузером при неудачном поиске в кэше браузера.
2. Сеть
•
Сеть порождает задержки во время доставки
информации от клиента к сер
веру (R'w
на рис. 1.1) и обратно от сервера к клиенту (R'm
на рис. 1.1). Эти
задержки являются функциями различных компонентов на пути между клиен
том и сервером, таких как модемы, маршрутизаторы, линии передачи, мос
ты и коммутаторы. Пусть Л
Network-
общее время, затрачиваемое на
HTTP-
запрос в сети. Тогда
#'Neiwork = r'n\
+ R'm-
3. Сервер
• От клиента поступает запрос.
• Сервер производит разбор запроса в соответствии с HTTP-протоколом.
• Сервер выполняет метод запроса (т.е. GET, HEAD и т.д.).
• В случае
GET
сервер ищет файл в своем дереве документов с использова
нием услуг файловой системы; файл может
находиться в кэше или на дис
ках.
•
Сервер считывает содержимое файла с диска или из кэша и записывает его
в сетевой порт.
•
Когда файл полностью передан, сервер закрывает соединение, если только
не определено устойчивое соединение.
•
Время пербывания на сервере,
R'senn,
-
это время, затрачиваемое на выпол
нение
HTTP-запроса.
Оно включает в себя время обработки и время ожида
ния на
различных компонентах сервера, таких как процессор, диск и сете
вой адаптер.
Когда запрашиваемый документ не находится в кэше клиента, время отклика
R
на запрос представляет собой сумму времени пребывания запросов на всех ресурсах:![]()
Когда поиск оказывается удачным и данные доступны в локальном кэше клиента,
время отклика, воспринимаемое конечным пользователем, вычисляется следующим
образом:![]()
Обычно Кш « -Rmiss. Давайте рассмотрим случай, когда браузер ищет запрашиваемые данные в локальном кэше Nc раз по каждому запросу NT. Среднее время отклика, R, для всех запросов NT может быть записано как:
![]()
Где рс - Nc I nt показывает долю времени, в течение которого данные искались в локальном кэше, т.е. вероятность попадания в кэш.
Пример _______________________________________________________
Пользователь желает проанализировать влияние размера локального кэша его браузера на воспринимаемое время отклика сети. Пользователь отметил, что 20% запросов было обработано локальным кэшем и среднее время отклика составило 100 мс. Среднее время отклика на запросы, обрабатываемые удаленными сайтами, составило 3 с. Среднее время, воспринимаемое пользователем:
Предыдущие эксперименты показали, что утроение размера локального кэша браузера может увеличить уровень попаданий до 15%. Таким образом, новое среднее время отклика составит:
Этот пример иллюстрирует влияние размеров кэша на производительность Web. •
3.2 Узкие места
По мере роста количества клиентов и серверов эффективность работы конечного пользователя обычно ограничивается рабочими характеристиками некоторых компонентов (т.е. сервера, линий связи и маршрутизаторов) на всем протяжении пути от клиента до сервера. Компоненты, ограничивающие эффективность работы системы, называются узкими местами (bottlenecks). Определение узких мест - это ключевой шаг при анализе эффективности, поскольку они указывают на компонент, который должен быть в первую очередь обновлен с целью улучшения характеристик производительности.
Пример _______________________________________________________
Рассмотрим домашнего пользователя, который недоволен временем доступа в Internet. Он жалуется, что загрузка страницы среднего размера (в среднем 20 Кб) занимает слишком много времени. Чтобы сократить время отклика, пользователь обдумывает возможность обновления своего настольного компьютера на тот, у которого процессор работает вдвое быстрее.
Прежде чем тратить деньги, пользователь желает получить ответ на следующий вопрос: "За счет чего сократится время отклика, если я увеличу скорость своего настольного компьютера?" Давайте примем, что сетевое время для передачи средней страницы по сети составляет 7.5 с. Среднее время пребывания на сервере -3.6 с, а время, затраченное браузером настольного компьютера (т.е. время, затраченное на синтаксический разбор, форматирование и отображение ответа на экране) - 0.3с. Воспользовавшись уравнением (1.1.1), получаем:
![]()
Время браузера - это главным образом время ЦП. Таким образом, после модернизации ЦП можно ожидать, что время браузера сократится вдвое по сравнению с исходным значением.
Таким образом:
![]()
Новое среднее время отклика составит:
![]()
Однако, после удвоения скорости работы настольного компьютера время отклика сокращается с 11.10с до 11.25с, т.е. всего на 1.3%! Модель ясно показывает, что модернизация ЦП не оказывает существенного влияния на время отклика, поскольку настольный компьютер не является узким местом первостепенной важности.
Основа анализа узких мест зависти от того факта, что производительность всей системы лимитируется производительностью наиболее ограниченных компонентов системы. Значит, нам необходимо только посчитать производительность каждого компонента системы и выбрать тот, который характеризуется самой низкой производительностью. В главе 9 мы обсудим стандартный путь определения узких мест как функции комбинации рабочей нагрузки и конфигурации системы.
Пример ______________________________________
Производитель фармацевтической продукции предполагает использовать интрасеть для распространения молекулярной структуры химикатов, созданных компанией. Интрасеть будет применяться для сеансов обучения персонала в оперативном режиме. В каждом занятии участвуют 100 сотрудников, и мы можем считать, что одновременно работают 80% стажеров. Во время занятия каждый пользователь выполняет в среднем 100 операций в час. Каждая операция требует в среднем пять изображений. Средний размер запрашиваемых изображений составляет 25 600 байт. Какова минимальная пропускная способность сетевого соединения с сервером изображений?
Имеем 80 (0.8 х 100) активных пользователей. Каждый пользователь выполняет 100 / 3600 операций/с. Каждая операция создает 5 х 25 600 х 8 бит данных. Таким образом, минимальная пропускная способность равна:
![]()
Следовательно, если сетевое соединение - это линия Т1 (1.511 Мбит/с), то сеть будет являться узким местом данного Web-сайта интрасети.
Пример 1.5 иллюстрирует некоторые аспекты, использованные в определении размеров интрасети. Во-первых, необходимо оценить количество информации, постоянно находящейся на сервере. Эта информация включает в себя количество объектов (т.е. документы, видео- и аудиофайлы) и их размеры. Второй фактор -характер информации, которую сервер будут передавать. Другими словами, каково содержимое сайта? Мультимедиа-файлы в 100-10000 раз больше, чем HTML-страницы, и они требуют большую долю пропускной способности сети. Третий
фактор - это размер коллектива пользователей. Если речь идет об общедоступном Web-сайте, очень трудно представить себе число пользователей, которые потенциально могут посетить такой сайт. Однако когда вы планируете создать корпоративный портал, то коллектив потенциальных пользователей в некоторой степени определяется количеством сотрудников компании, которые имеют доступ в интра-сеть.
Литература
1. T. Berners-Lee, R. Cailliau, H. Nielsen, and A. Pecret, "The World Wide Web," Comm. ACM, vol. 37, no. 8, pp. 76-82, Aug. 1991.
2. P. Bernstein and E. Newcomer, Principles of Transaction Processing, Morgan Kaufmann, San Francisco, California, 1996.
3. A. Bestavros, R. Carter, M. Crovella, C. Cunha, A. Heddaya, and S. Mirdad, "Application-Level Document Caching in the Internet," Proc. Int. Workshop Distrib. Networked Environments, Canada, 1995.