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

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

Мы протестировали продукты, относящиеся к названным категориям. Основная цель состояла не в проведении детального сравнительного анализа, а в определении оптимального способа использования функциональных возможностей, которыми обладают средства управления Web-трафиком, для предоставления клиентам наиболее оперативного, удобного и надежного доступа к серверу электронной коммерции.

Стремясь ограничить свою задачу, мы сфокусировали внимание на пригодности этих продуктов для удовлетворения запросов организации, Web-узел которой принимает входящий трафик по каналу T1. Обеспечиваемая им пропускная способность является вполне типичной для американских фирм [в нашей стране, как известно, обычно используются меньшие скорости передачи. Б?? Прим. ред.]. Если ваша фирма, как и большинство других, не может раскошелиться на каналы T3, скорее всего, проблема распределения полосы пропускания между различными потоками данных не является для вас второстепенной.

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

Приоритезация трафика

Среди изученных нами средств первым кандидатом на роль инструментов управления скоростью передачи являются продукты, обеспечивающие приоритезацию трафика. Они не позволяют второстепенным приложениям занимать всю имеющуюся полосу пропускания каналов, ведущих к Web-серверу, и дезавуировать настройки сеансов, установленных для обработки транзакций электронной коммерции.

Для обеспечения максимальной доступности услуг, предоставляемых через Internet, компании, которые действуют в сфере электронного бизнеса, нередко приобретают высокопроизводительные многопроцессорные серверы и мощные коммутаторы. Однако вся вычислительная мощь таких устройств зачастую оказывается скованной возможностями единственного соединения, которое служит своеобразными воротами на корпоративный Web-узел. Независимо от того, является ли это соединение одной линией T1, их набором или даже каналом T3, его перегруженность внезапно нахлынувшим входящим трафиком свидетельствует: деньги, вложенные в коммутаторы и серверные кластеры, потрачены зря.

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

Организация, Web-узел которой связан с глобальной сетью «узким» каналом, может заранее установить, какая доля его пропускной способности достанется каждому приложению или пользователю. Без детального контроля за распределением полосы пропускания входные буферы коммутатора или маршрутизатора быстро переполнятся, что вызовет произвольное отбрасывание части пакетов; этот процесс будет длиться до тех пор, пока протоколы транспортного или сеансового уровня не обнаружат перегрузку и не приостановят передачу трафика. Если трафик, поглощающий основную долю полосы пропускания, порожден второстепенными процессами или приложениями (например, связан с передачей больших файлов по протоколу FTP), то он помешает распространению по сети более важной информации (например, сведений о размещаемых заказах).

Продукты. Мы проанализировали два изделия, которые относятся к разным видам систем, распределяющих пакеты по приоритетам. Так называемые менеджеры буферов («проводники отдельных битов») были представлены устройством WiseWan 200 фирмы NetReality. В качестве продукта, поддерживающего управление скоростью передачи в сеансах TCP/IP, в нашем тесте фигурировал PacketShaper компании Packeteer (табл. 1).

Устройство WiseWan 200, поддерживающее выделенные каналы T1 и соединения frame relay, устанавливается за маршрутизатором. Оно отвечает за обслуживание формируемых администратором очередей пакетов, передачу же данных для постановки в очередь осуществляют конечные станции. Конфигурация продукта компании NetRreality может быть настроена на распределение полосы пропускания между различными видами трафика на основе типа используемого протокола. Однако это устройство не подавляет низкоприоритетный трафик полностью, а лишь уменьшает отводимую ему долю полосы пропускания, исходя из необходимости первоочередной транспортировки потоков данных с наивысшим приоритетом. В результате обеспечивается эффективная схема передачи данных из каждой очереди с разными скоростями.

Располагаемый за пределами внутренней корпоративной сети, WiseWan 200 обеспечивает дифференцированный подход к поступающим в нее данным. Отрицательная сторона такого решения состоит в ограниченных возможностях контроля за трафиком внутренней сети организации.

Средства приоритезации, представленные в нашем тесте устройством PacketShaper, устанавливаются внутри частной сети Б?? непосредственно перед маршрутизатором. PacketShaper отслеживает подтверждения протокола TCP во входных потоках данных и принимает решение о допустимой величине задержки до получения подтверждения. С этой целью производится детальный анализ содержимого пакетов TCP/IP, из которых извлекаются сведения о типе трафика приложений, установленных соединениях (IP-Sockets) и парах IP-адресов. Затем устройство распределяет имеющуюся полосу пропускания в соответствии с параметрами трафика.

Эта процедура очень похожа на сортировку: передающее устройство полностью перекрывает путь всем видам входящего трафика кроме тех, которые имеют высокий приоритет. В отличие от WiseWan 200, в продукте компании Packeteer буферизация трафика не предусмотрена, поэтому при резком всплеске интенсивности потока данных PacketShaper оценивает время до следующего аналогичного всплеска и полосу пропускания, которая необходима соответствующему приложению. Одним из преимуществ средств приоритезации, устанавливаемых во внутренней сети компании, является возможность использования правил при принятии решений об обработке трафика локальных сеансов TCP.

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

WiseWan 200 больше подойдет для управления каналами доступа к корпоративному Web-узлу, находящимися между маршрутизатором и сетью Internet-провайдера. Скажем, в ходе тестирования обнаружилось, что контроль за соединениями frame relay можно осуществлять даже на уровне уведомлений о перегрузке FECN (Forward Explicit Congestion Notification) и BECN (Backward Explicit Congestion Notification). Подобный уровень детализации недоступен устройствам типа PacketShaper, устанавливаемым перед маршрутизатором, к которому подсоединен Web-сервер. При необходимости сжимать передаваемые данные преимущества WiseWan 200 становятся еще более очевидными, поскольку такое сжатие имеет смысл выполнять на одном из концов соединения с глобальной сетью, а не внутри корпоративной сети.

Устройство же PacketShaper, установленное за маршрутизатором и передающее ему данные, не может «знать», кому адресованы эти данные Б?? одному из узлов глобальной сети или клиентской станции сети корпоративной. Вот почему оно не способно принимать корректные решения о том, необходимо ли сжатие данных перед их дальнейшей передачей. Тем не менее мы настоятельно рекомендуем использовать продукты вроде PacketShaper, когда требуется распределять суммарную полосу пропускания между несколькими типами исходящего трафика, поскольку они позволяют узнать, какие именно данные запрашивают пользователи, и затем выделить часть имеющихся ресурсов канала отдельным приложениям. Например, если сервер обрабатывает множество запросов FTP, то во время приема пользователями файлов из глобальной сети трафик этого протокола грозит поглотить всю полосу пропускания линии T1. PacketShaper ограничивает скорость передачи таких файлов, так что запросы других приложений (электронной почты, RealAudio и т.п.) также будут удовлетворены.

Кэширование

После того как средства приоритезации начали управлять полосой пропускания канала, ведущего к вашему Web-серверу, самое время подумать об установке средств кэширования данных.

Технология Web-кэширования позволяет значительно ускорить доступ к содержимому Web-узла, поскольку она исходит из того общеизвестного факта, что разные пользователи нередко запрашивают в Internet одни и те же данные. Значительная часть информации Web-серверов является статической, поэтому нет смысла каждый раз загружать ее свежую копию по медленным каналам глобальной сети через множество промежуточных узлов. Гораздо рациональнее Б?? разместить копии данных, пользующихся наибольшим спросом, как можно ближе к пользователям, уменьшив время реакции системы и минимизировав неэффективное использование полосы пропускания.

Есть, правда, и другой вариант: установить средства кэширования в непосредственной близости от Web-сервера и тем самым освободить его от обработки запросов к наиболее популярным Web-страницам. Такое решение иногда именуется обратным кэшированием. При получении запроса на загрузку страницы, находящейся в кэше, она будет немедленно отправлена на компьютер пользователя и этот запрос не попадет на Web-сервер.

Продукты. На наше приглашение поучаствовать в тестировании откликнулись только две компании Б?? CacheFlow с устройством CacheFlow 520 и Cobalt Networks с продуктом CacheRaQ (табл. 2). Как показали испытания, различия между изделиями этих фирм минимальны. Пожалуй, единственное, что нам удалось заметить, Б?? разный подход к обработке запросов на загрузку Web-страниц.

CacheFlow 520 скрывает от Web-сервера IP-адрес клиентской станции, запросившей данные, и выдает лишь IP-адрес кэширующего устройства. Напротив, CacheRaQ сохраняет адрес станции-клиента и сообщает его Web-серверу вместе с запросом get; в результате IP-адреса станций корпоративной сети могут оказаться известными «внешнему миру». Ни один из этих подходов нельзя признать абсолютно верным или полностью ошибочным. Тем не менее следует отметить, что выставление на показ внутренних IP-адресов повышает уязвимость системы информационной безопасности.

Заслуживает упоминания и еще одно различие между двумя продуктами. Оно связано с организацией процесса HTTP, называемого последовательной загрузкой. Когда пользователь выдает запрос к Web-странице, между клиентским приложением и Web-сервером возникает с десяток процедур передачи данных. Причиной столь интенсивного обмена является то, что каждая Web-страница состоит из множества обюектов и при получении пользовательского запроса на ее загрузку для каждого находящегося на ней обюекта устанавливается отдельный сеанс TCP, сопровождаемый запросом get протокола HTTP. В версии HTTP 1.1 процедура последовательной загрузки несколько усовершенствована: обюекты передаются на клиентскую станцию не поодиночке, а группами. Однако пока на Web-узлах доминирующим остается протокол HTTP 1.0.

В ходе тестирования средств кэширования нас приятно удивила попытка CacheFlow привнести преимущества групповой загрузки обюектов в среду, где использовался традиционный протокол HTTP 1.0. Для устранения задержек, связанных с последовательной загрузкой элементов Web-страниц, устройство этой компании использует патентованный конвейерный алгоритм Pipeline Retrieval. Оно устанавливает столько одновременных соединений TCP, сколько позволяет сервер, с которого загружаются данные, так что передача нескольких обюектов осуществляется параллельно. Обюекты доставляются на клиентскую станцию с той скоростью, с которой они запрашиваются браузером. Более того, для ускорения доступа алгоритм Pipeline Retrieval использует тактику упреждающей загрузки: передача обюектов по сети начинается прежде, чем их запрашивает браузер.

Время решает все

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

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

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

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

Так, CacheFlow использует алгоритм адаптивного обновления (Adaptive Refresh), который выполняет избирательное обновление Web-обюектов, как только в этом возникает необходимость. Частота обновлений зависит от способности механизма кэширования создать «модель использования» и «модель изменения» конкретного обюекта. Сочетание сведений об отдельных элементах Web-страницы позволяет построить шаблон ее обновления в целом. Фактически, описанный подход является примером упреждающего алгоритма выявления устаревших данных. Его очевидное преимущество состоит в возможности планирования процедур обновления кэша, в частности отнесения их на нерабочие часы для уменьшения нагрузки на каналы глобальных сетей.

Что касается разработок другий компаний, в том числе CahceRaQ, то в них реализованы алгоритмы проверки актуальности данных по мере обращения к ним. Это означает, что после получения пользовательского запроса средства кэширования осуществляют локальную проверку находящихся в кэше обюектов и при необходимости принимают решение о передаче обновленного обюекта.

Рекомендации. Даже если оставить в стороне проблему актуальности данных, средства Web-кэширования должны стать обязательным компонентом любого сервера электронной коммерции. Благодаря кэшированию не только повышается эффективность использования пропускной способности, но и уменьшаются задержки передачи. Единственное предостережение сводится к тому, что соответствующие средства должны гарантировать актуальность передаваемых данных. Когда в ходе тестирования мы генерировали запросы на загрузку обновленных копий Web-страниц по специально созданной сети, в которой были установлены продукты компаний CacheFlow и Cobalt, оба устройства действовали адекватно и передавали обновленные данные в тех случаях, когда это было необходимо.

Выравнивание нагрузки

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

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

В своем простейшем виде средства выравнивания нагрузки являются своеобразными «полицейскими» на сетевых линиях, которые управляют движением входящего трафика FTP, HTTP и других протоколов. Эти устройства перехватывают трафик перед тем как он попадает на Web-серверы и решают, какой из серверов обеспечит наивысшую производительность и минимальное время отклика на запрос пользователя.

Продукты. Мы проверили функционирование продуктов семи производителей Б?? AceSwitch 180 (компании Alteon WebSystems), SC-100 (Arrow Point Communications), Equalizer (Coyote Point Systems), Big/ip (F5 Networks), HydraWeb 5000 (HydraWeb Technologies), Serverlon (Foundry Networks) и Web Server Director (RADWare), табл. 3. Выяснилось, что в противовес устройствам кэширования, границу между которыми можно провести только на уровне обработки запросов к Web-страницам, средства выравнивания нагрузки различаются довольно сильно, даже по форме и размеру. Одни поставщики (Alteon, Arrow Point и Foundry) включили их в состав коммутаторов, размещаемых между сервером и каналом в Internet. Другие (Coyote, F5 Networks и HydraWeb) реализовали соответствующие функции в ПК, оборудованном двумя сетевыми адаптерами. Один из них служит для подключения к концентратору, устанавливаемому перед Web-сервером, а второй Б?? к маршрутизатору или иному устройству, обеспечивающему выход в Internet.

На первый взгляд может показаться, что решения на базе ПК вряд ли приживутся в корпоративных сетях. Однако способность персонального компьютера обрабатывать трафик Fast Ethernet означает, что он легко управится и с потоками данных, передаваемыми по каналам T3. Конечно, коммутаторы со специализированными микросхемами (ASIC) обеспечивают большую производительность операций выравнивания нагрузки, чем обычный ПК, зато у последнего шире спектр возможностей: универсальное ядро операционной системы содержит стандартные программные интерфейсы, а это позволяет целой армии независимых разработчиков создавать управляющие утилиты.

Средства выравнивания нагрузки отслеживают множество показателей функционирования подключенных к ним Web-серверов, чтобы определить, какой из них в данный момент меньше всего загружен и, следовательно, сумеет обработать транзакцию оперативнее других. Для измерения времени отклика сервера некоторые продукты выдают простейшую команду ping; именно этот подход взяли на вооружение Alteon, Arrow Point, HydraWeb, F5 Networks и RADWare. Однако устройства тех же Arrow Point и RADWare могут использовать и другую стратегию, оценивая время отклика по загрузке целой Web-страницы в сеансе telnet или по запросу HTTP.

Недостаток первого способа заключается в том, что он не позволяет распознать отказ установленной на сервере программы-демона HTTP: если сетевое соединение с сервером активно, оно будет реагировать на команду ping, и средство выравнивания нагрузки расценит поступивший отклик как способность самого сервера обработать запрос HTTP. По этой причине ряд продуктов рассматриваемой категории собирает более детальные сведения о текущем состоянии серверов. Например, система HydraWeb 5000 выдает запрос к базе данных, измеряет время реакции на него и использует полученное значение в качестве одного из пяти показателей при вычислении так называемого «индекса сбалансированности нагрузки». Указанный индекс впоследствии помогает определить, какой из серверов наилучшим образом подходит для обработки определенных запросов.

В дополнение к функциям оценивания времени реакции в некоторых продуктах реализованы серверные агенты, собирающие статистические данные о работе сервера и отправляющие их на устройство выравнивания нагрузки. Агенты позволяют получить гораздо более подробную информацию, чем выдача команды ping. Так, агенты, устанавливаемые системой HydraWeb 5000, способны определить степень утилизации ресурсов центрального процессора, а значит, и то количество запросов, которые сервер может обслужить в текущий момент. Агенты системы CS-100 (Arrow Point) анализируют содержание передаваемых данных с целью гарантировать, что сеансо-ориентированные транзакции электронной коммерции будут обрабатываться на сервере требуемого типа. Скажем, если CS-100 обнаружит, что запрос относится к активной серверной странице, он будет передан тому серверу, который способен обработать такой запрос.

Правда, собирая детальную информацию, агенты расходуют драгоценные ресурсы серверного центрального процессора. Кроме того, некоторые функции интеллектуальных агентов пока недоступны на ряде серверных платформ. Таким образом, целесообразность применения агентов напрямую зависит от того, какой обюем информации о функционировании сервера вам необходим.

Когда средство выравнивания нагрузки определило состояние каждого из вверенных ему Web-серверов, оно распределяет входящий трафик по определенному алгоритму. Проводя тестирование, мы выяснили, что системы CS-100 (Arrow Point), Big/ip (F5 Networks) и Equalizer (Coyote) действуют по круговой схеме. Это означает, что поступающие запросы равными порциями последовательно распределяются между серверами. Впрочем, те же Big/ip и Equalizer, а также устройства AceSwitch (Alteon) и Web Server Director (RADWare) поддерживают алгоритм, в соответствии с которым запрос передается серверу, имеющему в данный момент наименьшее число соединений TCP. Наконец, CS-100 способен распределять запросы по серверам в зависимости от заранее приписанных им весов (в этом случае, скажем, система с процессором Pentium 300 должна получить больше запросов, чем сервер с процессором Pentium 200).

Всякий алгоритм управления Web-трафиком обязан распознавать отказавший сервер. Однако устройство выравнивания нагрузки должно не только определять сбой сервера, но и выявлять соединения TCP/IP, являющиеся активными несмотря на сбой загруженного на сервере программного обеспечения. Как обнаружилось при тестировании коммутаторов, взгляды производителей на возможные виды серверных отказов (за исключением крайних ситуаций, т.е. полной блокировки работы центрального процессора) довольно сильно разнятся. Ясно одно: им предстоит серьезно поработать над тем, чтобы предлагаемые средства могли отличать полный отказ серверов от неполадок в их отдельных компонентах.

Рекомендации. Если ваши потребности в выравнивании нагрузки весьма умеренные и основная задача сводится к приблизительно равномерному распределению запросов между серверами, обюединенными в низкоскоростную локальную сеть, то, скорее всего, с этим справится любой из протестированных нами продуктов. Так же обстоят дела и в том случае, когда информация на Web-сервере практически не меняется: средство, работающее по круговой схеме, вполне удовлетворит ваши потребности. Однако если процесс распределения нагрузки должен быть более «интеллектуальным» и учитывать множество факторов, мы рекомендуем обратиться к устройствам, в которых используется технология серверных агентов. При необходимости размещать на Web-сервере динамические данные, в том числе страницы, конструируемые в режиме реального времени, вам не обойтись без устройства выравнивания нагрузки, которое поддерживает «фиксированные» соединения HTTP.

На пороге перемен

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

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

В течение ближайших месяцев можно ожидать появления продуктов, в которых будут интегрированы различные технологии ускорения обработки Web-трафика. Производители коммутаторов, такие как Alteon, планируют дополнить свои изделия средствами кэширования данных и распределения трафика по приоритетам. Фирма Cisco уже рализовала некоторые функции выравнивания нагрузки в системе LocalDirector. Наконец, даже те компании, которые традиционно специализировались на устройствах выравнивания нагрузки (вроде Arrow Point), приступили к реализации функций управления трафиком и приоритезации потоков данных на основе правил.

ОБ АВТОРАХ

Чарльз Бруно (Charles Bruno) Б?? управляющий редактор, Грег Килмартин (Greg Kilmartin) Б?? инженер, а Келвин Толли (Kevin Tolly) Б?? президент и исполнительный директор компании The Tolly Group. С ними можно связаться по электронной почте:cbruno@tolly.com, gkilmartin@tolly.com, ktolly@tolly.com.


Выравнивать или нет?

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

Предположим, что система выравнивания нагрузки постоянно «перебрасывает» посетителя узла Amazon.com с одного сервера на другой. Между тем очевидно, что после помещения выбранной книги в электронную корзину система должна «привязать» пользователя к тому серверу, с которого в данный момент поступает информация. Если этого не произойдет, то важные сведения о размещаемом заказе окажутся утерянными, а транзакция будет признана несостоявшейся.

Таким образом, выбирая устройство для выравнивания серверной нагрузки, следует поинтересоваться наличием поддержки «липких» соединений (sticky connections). Если не вдаваться в детали, их роль можно описать следующим образом. Распределяя запросы get на получение данных между доступными серверами, средства выравнивания должны сохранять для некоторых транзакций (прежде всего Б?? относящихся к размещению и обработке электронных заказов) установленный сеанс пользователя с конкретным сервером до тех пор, пока транзакция не будет завершена. Как показало тестирование, эта функция реализована в большинстве систем выравнивания нагрузки (кроме устройства Web Server Director производства RADWare).

Некоторые продукты (HydraWeb 5000, Big/ip и CS-100) для «привязки» пользователя к конкретному серверу используют технологию cookies. Системы Equalizer, ServerIron и те же HydraWeb 5000 и Big/ip поддерживают идентификаторы сеансов протокола Secure Socket Level (SSL). Впрочем, последний вариант требует осмотрительности. Программное обеспечение Internet Information Server 5.0 корпорации Microsoft, активно используемое в электронной коммерции, изменяет идентификаторы сеансов непосредственно в процессе работы. В результате устройство выравнивания нагрузки может решить, что оно работает с новым соединением, и инициировать разрыв прежнего, тогда как в действительности соединение осталось тем же.


Способы выравнивания нагрузки

В настоящее время существует несколько способов распределения нагрузки между Web-серверами. Самый «древний» из них, метод циклического использования серверов доменных имен (Rotary DNS), постепенно вытесняется применением специализированных устройств, которые позволяют поднять производительность обработки запросов и повысить отказоустойчивость.

Метод Rotary DNS основан на таком изменении базы данных DNS, при котором запись, соответствующая одному виртуальному имени, позволяет сразу нескольким серверам обслуживать поступающие запросы. Имена этих серверов циклически помещаются в начало списка машин, закрепленных за данным виртуальным именем. Например, если таких серверов три, то порядок их следования в списке будет периодически изменяться, и одна часть запросов поступит на первый сервер, который в данный момент соответствует виртуальному имени, другая Б?? на второй сервер, а оставшиеся запросы Б?? на третий.

При использовании описанного циклического метода задействуются обычные серверы DNS, поэтому он не позволяет планировать и контролировать процесс кэширования данных, а следовательно, и реальную загрузку компьютеров. Добавление в DNS новых имен и удаление из него прежних может занять не один час, поскольку распространение по сети информации об изменениях в записях DNS Б?? процесс довольно продолжительный. В результате бывает, что значительные обюемы трафика направляются на машину, которая уже несколько часов (а то и дней) как отключена от сети. Метод Rotary DNS обеспечивает изменение только IP-адреса, связанного с определенным Web-узлом, однако не затрагивает протоколов и портов, ассоциированных с этим адресом.

Установка выделенных аппаратных средств для выравнивания нагрузки сулит множество преимуществ перед использованием Rotary DNS. Такие устройства передают входящие запросы на реальные, а не виртуальные серверы, в обмене трафиком также участвуют реальные серверы, и это позволяет установить счетчик открытых соединений. Алгоритм выравнивания на основе циклической перестановки в чем-то схож с Rotary DNS, поскольку тоже трактует все серверы как абсолютно равноправные, однако он не вызывает задержек, связанных с передачей обновленных записей DNS, и свободен от проблем кэширования. Его применение для обслуживания кластерных систем, обюединяющих несколько Web-серверов с похожей конфигурацией, обеспечивает высокую эффективность распределения запросов и предсказуемость уровня загрузки серверов.

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

Неодинаковость серверов с точки зрения вычислительных ресурсов или выполняемых задач приводит к тому, что системные администраторы иногда прибегают к присвоению им весовых коэффициентов; последние используются и устройством выравнивания нагрузки при распределении входящего трафика. Данный метод позволяет администратору активно влиять на процесс выравнивания нагрузки, вместо того чтобы целиком полагаться на установленные аппаратные средства.

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

Наконец, загрузка на серверы программных агентов позволяет системе выравнивания нагрузки путем их опроса выяснять характер функционирования и текущую производительность отдельных машин. Правда, в настоящее время данный алгоритм реализован только для операционных сред UNIX и Windows NT Server.

Рич Фаррелл