ВЗГЛЯД изнутри
Подобно многим завсегдатаям Internet, я чаще путешествую по Web рано утром или поздно ночью, когда время отклика меньше. Как и в недобрые старые времена мэйнфреймов, причиной работы в столь необычные часы является чрезмерная централизация.
Internet считается и в значительной мере является распределенной средой. Однако в отношении Web теория распределенных вычислений сильно расходится с практикой: массы пользователей получают информацию напрямую с центральных перегруженных серверов.
Более старые и развитые протоколы, например FTP, Usenet и DNS (система именования доменов), имеют куда лучшие инструменты распределения нагрузки. Если бы Web работала подобно DNS, у нас был бы доступ к Web через сеть серверов-представителей и мы получали бы страницы с ближайшего сервера, имеющего свежую копию. Когда-нибудь так оно и будет. А пока распределение нагрузки находится на усмотрении поставщиков информации.
Самая обычная реакция на слабую производительность - увеличить ширину полосы пропускания, однако это не самый эффективный подход.
Когда пару лет назад узел PC Week начал захлебываться, мы прежде всего занялись скоростью нашего соединения с Internet. К немалому удивлению, даже когда трафик "штормило", загруженность нашего соединения Т-1 колебалась на уровне 20%.
Частично это можно объяснить неэффективностью протокола НТТР, о которой я писал ранее, но главной проблемой является не ограниченность полосы пропускания, а перегруженность серверов.
ZDNet смогла эффективно увеличить производительность, значительно расширив оперативную память каждого сервера, перенеся высокоскоростные службы, такие, как FTP-архивы PC Magazine и аудио-службу PC
Week Radio, на отдельные машины и даже в отдельные места (так что теперь они используют разные линии подключения к Internet).
Следующий шаг - это переход от использования одной машины на каждую службу к нескольким. Наиболее общий путь для достижения этого - "карусельная DNS" в качестве примитивной формы кластеризации для Web. Разместить такую систему просто: присвойте нескольким машинам один и тот же псевдоним DNS (еще он называется CNAME). Например, если у вас пять машин - от www1.company.com до www5.company.com - дайте каждой из них псевдоним www.company.com.
Основная трудность такого решения - разобраться, как обеспечить идентичность содержимого серверов.
Весьма интересный подход состоит в использовании функции "обратного представителя" (reverse proxy), реализованной в последней версии сервера-представителя корпорации Netscape. Благодаря этой функции, машины с www1 по www5 станут серверами-представителями, а не серверами Web, и будут получать исходное содержимое с сервера Web (возможно, одного из тех, что защищены вашим брандмауэром).
Пока Web не разовьет собственный распределенный механизм или пока поставщики не предложат более простые формы кластеризации и репликации Web-серверов, распределение нагрузки будет нелегкой задачей. Хотя полученная выгода того стоит.
Имонн Салливан
В отношении Web теория распределенных вычислений сильно расходится с практикой