tanenbaum_seti_all.pages (525408), страница 169
Текст из файла (страница 169)
С некоторыми из них мы уже сталкивались в предыдущей главе. Тем не менее, сетевой уровень в основном занят вопросами маршрутизации и борьбы с перегрузкой. Более глобальные вопросы, касающиеся производительности всей системы в целом, оказываются прерогативой транспортного уровня, поэтому они будут рассматриваться именно в этой главе. В следуюших разделах мы рассмотрим следующие пять аспектов производительности сети. 1. Причины снижения производительности. 2. Измерение производительности сети. 3.
Проектирование производительных систем. 4. Быстрая обработка ТР1Н)-модулей. 5. Протоколы для будущих высокопроизводительных сетей. Нам потребуется ввести название для единиц данных, которыми обмениваются транспортные сушности. Термин «сегмент», применяемый в протоколе ТСР, в лучшем случае запутывает и никогда не используется в этом смысле за пределами мира ТСР. Соответствующие АТМ-термины — С5-РПУ (протокольная единица обмена подуровня конвергенции), БАЙ-Р1Н1 и СРСЯ-Р1Н~ — применяются только в сетях АТМ. Термин «пакет» относится к сетевому уровню, а сообшения применяются на прикладном уровне.
За отсутствием стандартного термина мы будем продолжать называть единицы данных, которыми обмениваются транспортные сущности, ТРАП-модулями. Когда будет иметься в виду ТРРЦ- модуль вместе с пакетом, мы будем использовать в качестве обобщающего термина понятие «пакет», например: «Центральный процессор должен быть достаточно быстрым, чтобы успевать обрабатывать приходяшие пакеты в режиме реального времени». При этом будет иметься в виду как пакет сетевого уровня, так и помещенный в него ТРАП-модуль. Причины снижения производительности компьютерных сетей Некоторые виды снижения производительности вызваны временным отсутствием свободных ресурсов. Если на маршрутизатор вдруг прибывает трафик больше, Вопросы производительности 63$ чем он способен обработать, образуется затор, и производительность резко падает.
Вопросы перегрузки подробно рассматривались в предыдущей главе, Производительность также снижается, если возникает структурный дисбаданс ресурсов. Например, если гигабитная линия связи присоединена к компьютеру с низкой производительностью, то несчастный центральный процессор не сможет достаточно быстро обрабатывать приходящие пакеты, что приведет к потере некоторых пакетов. Эти пакеты рано или поздно будут переданы повторно, что приведет к увеличению задержек, непроизводительному использованию пропускной способности и снижению общей производительности.
Перегрузка может также возникать синхронно. Например, если ТР1)1)-модуль содержит неверный параметр (например, номер порта назначения), во многих случаях получатель заботливо пошлет обратно сообщение об ошибке. Теперь рассмотрим, что случится, если неверный ТР1)1)-модуль будет разослан широковещательным способом 10 000 машин. Каждая машина может послать обратно сообщение об ошибке. Образовавшийся в результате широковещательный шторм может надолго остановить нормальную работу сети. Протокол 1Л)Р страдал от подобной проблемы, пока не было решено, что хосты должны воздерживаться от отправки сообщений об ошибке в ответ на широковещательные ТР()13- модули 1Л)Р. Второй пример синхронной перегрузки может быть вызван временным отключением электроэнергии.
Когда питание снова включается, все машины одновременно обращаются к своей постоянной памяти и начинают перезагружаться. Типичная последовательность загрузки может требовать обращения к какому- нибудь 1)НСР-серверу (сервер динамической конфигурации хоста), чтобы узнать свой истинный адрес, а затем к файловому серверу, чтобы получить копию операционной системы.
Если сотни машин обратятся к серверу одновременно, он не сможет обслужить сразу всех. Даже при отсутствии синхронной перегрузки и при достаточном количестве ресурсов производительность может снижаться из-за неверных системных настроек. Например, у машины может быть мощный процессор и много памяти, но недостаточно памяти выделено под буфер. В этом случае буфер булет переполняться, и часть ТР1Н)-модулей потеряется, Аналогично, если процессу обработки поступающих пакетов дан недостаточно высокий приоритет, некоторые ТРРУ- модули могут быть потеряны.
Также на производительность могут повлиять неверно установленные значения таймеров ожидания. Когда посылается ТР1)1)-модуль, обычно включается таймер — на случай, если этот модуль потеряется. Выбор слишком короткого интервала ожидания подтверждения приведет к излишним повторным передачам ТР1Э13-модулей. Если же интервал ожидания сделать слишком большим, это приведет к увеличению задержки в случае потери ТР1И1-модуля. К настраиваемым параметрам также относятся интервал ожидания попутного модуля данных для отправки подтверждения и количество попыток повторной передачи в случае отсутствия подтверждений.
С появлением гигабитных сетей появились и новые проблемы. Рассмотрим, например, процесс отправки 64 Кбайт данных из Сан-Диего в Бостон при раз- 636 Глава 6. Транспортный уровень мере буфера получателя 64 Кбайт. Пусть скорость передачи данных в линии составляет 1 Гбитггс, а время прохождения сигнала в одну сторону, ограниченное скоростью света в стекле, равно 20 мс. Вначале (г= 0), как показано на рис, 6.34, а, канал пуст.
Только 500 мкс спустя все ТРЕН)-модули попадуг в канал (рис, 6.34, б). Первый ТРГП)-модуль оказывается где-то в окрестностях Броли, все еще в Южной Калифорнии. Тем не менее, передатчик уже должен остановиться, пока он не получит в ответ новую информацию об окне. е г рис. 6.34, передача половины мегабита нз свн-диего в Бостон: в момент времени г = 0 (г); через 600 мко (б); через 20 мо (в); через 40 мс (г) Через 20 мс первый ТРОП-модульч как показано на рис. 6З4, в, достигнет Бостона, и в ответ будет передано подтверждение. Наконец, через 40 мс после начала операции первое подтверждение возвращается к отправителю, после чего передается следующая порция данных, Поскольку линия передачи использовалась всего 0,5 мс из 40 мс, эффективность ее использования составит около 1,25 уы Такая ситуация является типичной для работы старых протоколов по гигабитным линиям.
При анализе производительности сетей полезно обращать внимание на произведение пропускной способности и времени задержки. Пропускная способность канала (в битах в секунду) умножается на время прохождения сигнала в оба конца (в секундах). В результате получается емкость канала в битах. В примере на рнс. 6.34 произведение пропускной способности и времени задержки равно 40 млн бит. Другими словами, отправитель к моменту получения Вопросы производительности 632 ответа успеет переслать 40 млп бит, если будет перславать с максимальной скоростью. Столько бит потребуется, чтобы заполнить канал в обоих направлениях, Таким образом, порция данных в полмиллиона бит составляет всего 1,25 Ж емкости канала, что и выражается в 1,25-процентной эффективности использования канала.
Отсюда следует, что лля эффективного использования канала размер окна получателя должен быть, по меньшей мере, равен произведению пропускной способности и времени задержки, а лучше — превосходить его, так как получатель может сразу и не ответить. Для трансконтинентальной гигабитной линии каждому соединению потребуется, по меньшей мере, по 5 Мбайт. Если даже при пересылке одного мегабита эффективность использования канала оказывается столь ужасной, представьте, что происходит в случае передачи нескольких сот байт при вызове удаленной процедуры. Если не найти этой линии еще какого-либо применения, пока клиент ожидает ответа, гигабитная линия будет ничем не лучше мегабитной, только значительно более дорогой.
Еще одна проблема производительности связана с приложениями типа видео и аудио, для которых временные параметры являя>тся критическими. Обеспечить малое среднее время перелачн здесь недостаточно. Требуется также обеспечить небольшое значение его среднеквадратичного отклонения. Для достижения обеих целей требуется немало инженерных усилий. Измерение производительности сети Когда качество работы сети оказывается не слишком хорошим, ее пользователи часто жалуются сетевым операторам, требуя усовершенствований. Чтобы улучшить производительность сети, операторы должны сначала точно определить, в чем суть проблемы. Чтобы выяснить текущее состоянис сети, операторы должны произвести измерения.
В данном разделе мы рассмотрим вопрос измерения производительности сети. Приводимое ниже обсуждение основано на работе Могола (Мояп1, 1993). Основной цикл работ по совершенствованию производптсльности сети включает следующие этапы. 1. Измерение наиболес важных сетевых параметров и производительности сети. 2. Попытка понять, что происходит. 3. Изменение одного из параметров. Эти шаги повторяются Ло тех пор, пока производительность не увеличится достаточно или пока не станет ясно, что этими методами производительность уже больше не увеличить. Измерения могут быть произведены разными способами и во многих местах (как физически, так и в стеке протоколов).
Наиболес распространенный тип измерений представляет собой включение таймера при начале какой-либо активности и измерение продолжительности втой активности. Например, одним из ключевых измерений является измерение времени, необходимого для получения отправителем подтверждения в ответ на отправку ТРО11-модуля. Другие изме- 638 Глава 6. Транспортный уровень рения производятся при помощи счетчиков, в которых учитывается частота некоторых событий (например, количество потерянных ТРР(1-модулей). Наконец, часто измеряются такие количественные показатели как число байтов, обработанных за определенный временной интервал. Процедура измерения производительности сети и других параметров содержит множество подводных камней.