Литмир - Электронная Библиотека

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

1.    Причины снижения производительности.

2.    Измерение производительности сети.

3.    Проектирование хостов для быстрых сетей.

4.    Быстрая обработка сегментов.

5.    Сжатие заголовка.

6.    Протоколы для протяженных сетей с высокой пропускной способностью (long fat networks).

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

6.6.1. Причины снижения производительности компьютерных сетей

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

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

Перегрузка может также возникать синхронно. Например, если сегмент содержит неверный параметр (например, номер порта назначения), во многих случаях получатель заботливо пошлет обратно сообщение об ошибке. Теперь рассмотрим, что случится, если неверный сегмент будет разослан широковещательным способом 10 000 машинам. Каждая машина может послать обратно сообщение об ошибке. Образовавшийся в результате широковещательный шторм (broadcast storm) может надолго остановить нормальную работу сети. Протокол UDP страдал от подобной проблемы, пока протокол ICMP не был изменен так, чтобы хосты воздерживались от отправки сообщений об ошибке в ответ на широковещательные сегменты UDP. Беспроводным сетям особенно важно не отвечать на непроверенные широковещательные пакеты, поскольку их пропускная способность ограничена.

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

Даже при отсутствии синхронной перегрузки и при достаточном количестве ресурсов производительность может снижаться из-за неверных системных настроек. Например, у машины может быть мощный процессор и много памяти, но недостаточно памяти выделено под буфер. В этом случае управление потоком данных замедлит получение сегментов и ограничит производительность. Такая проблема возникала для многих TCP-соединений, по мере того как Интернет становился более быстрым, а окно управления потоком было фиксированным (64 Кбайт).

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

Еще одна проблема, касающаяся приложений, работающих в реальном времени (например, воспроизводящих аудио и видео), — джиттер. Для хорошей производительности им недостаточно хорошей средней пропускной способности. Таким приложениям необходима низкая задержка. А для этого требуется эффективное распределение нагрузки на сеть, а также поддержка качества обслуживания на канальном и сетевом уровнях.

6.6.2. Измерение производительности сети

Когда качество работы сети оказывается не слишком хорошим, ее пользователи часто жалуются сетевым операторам, требуя усовершенствований. Чтобы улучшить производительность сети, операторы должны сначала точно определить, в чем суть проблемы. Чтобы выяснить текущее состояние сети, операторы должны произвести измерения. В данном разделе мы рассмотрим вопрос измерения производительности сети. Приводимое ниже обсуждение основано на работе Могола (Mogul, 1993).

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

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

Убедитесь, что выборка достаточно велика

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

Убедитесь, что выборка является репрезентативной

В идеале, следует повторить всю последовательность миллиона измерений параметров в различное время суток и в разные дни недели, чтобы заметить влияние различной загруженности системы на измеряемые параметры. Так, измерение перегрузки вряд ли принесет пользу, если эти измерения производить, когда перегрузки нет. Иногда результаты могут показаться на первый взгляд странными, как, например, наличие серьезных заторов в сети в 10, 11, 13 и 14 часов, но их отсутствие в полдень (когда все пользователи обедают).

В случае беспроводных сетей местоположение играет важную роль из-за распространения сигнала. Даже если узел, на котором выполняются измерения, находится рядом с беспроводным клиентом, он может не видеть некоторых пакетов, доступных клиенту, из-за различий в используемых антеннах. Измерения лучше проводить на хосте беспроводного клиента. Если это невозможно, необходимо выбрать несколько пунктов наблюдения и таким образом получить более полную картину (Mahajan и др., 2006).

Кэширование может сильно исказить ваши измерения

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

205
{"b":"639789","o":1}