ВАШИ ЛЮБИМЫЕ ИНСТРУМЕНТЫ
После опубликования заметки «Заимствования из UNIX» (см. январский номер LAN за этот год) в адрес редакции по электронной почте пришли письма, где сообщалось о других инструментах, которые, как нам думается, могут оказаться полезны вам в работе. Эд Фойстел, инженер-исследователь из Александрийского института анализа защиты, указывает на то, что в заметке не упоминался такой «прекрасный комплект инструментов UNIX, как MKS (http://www.mks.com). Он делает жизнь сносной и предсказуемой в оболочке Korn Shell меньше чем за 500 долларов. Учитывая оклад сетевого администратора, компании глупо было бы отказать ему в приобретении этой полной командной среды UNIX».
Мне действительно стоило упомянуть MKS. Однако я должен заметить, что этот комплект инструментов предназначен в первую очередь для тех опытных пользователей UNIX, кто по каким-то причинам решил перейти на Windows. Тем же пользователям Windows, кто хочет пополнить свой набор инструментов заимствованными из UNIX, я бы прежде всего рекомендовал UnixDOS от Professional Software Solutions по цене 60 долларов (http://www.profsoftware.com).
Майк Фундук написал, что его компания, Funduc Software, предлагает условно-бесплатную утилиту, аналогичную рекомендованной мной TextPipe (http://www.searchandreplace.com). Его инструмент Search and Replace удивительно прост, впечатляюще быстр и стоит всего 25 долларов за однопользовательскую версию.
Я наткнулся на еще один похожий инструмент. Менее мощный, но вместе с тем и более дешевый (по сути бесплатный) WinEasy можно загрузить по адресу: http://www.fluid3d.com/software/wineasy.html.
Оба эти инструмента предусматривают такую удобную возможность, как назначение постоянного каталога, куда по умолчанию помещаются измененные файлы, создаваемые при выполнении операции замены. Это позволяет избежать ситуаций, когда выполнение замены приводит к непредвиденным результатам, в итоге вы оказываетесь «у разбитого корыта», так как все оригиналы модифицированы, а операцию поиска и замены обратить оказывается невозможно (к сожалению, такая ситуация возникает сплошь и рядом).
Search and Replace имеет то преимущество, что он поддерживает регулярные выражения. Предположим, что у вас имеются ссылки на один и тот же файл с изображением с различных страниц Web. В каждом из случаев вы могли употреблять различные атрибуты и иной текст для описания изображения, но оно всегда имело параметр height=30. Конечно, это значение может использоваться в массе других ситуаций, поэтому вам хотелось бы его изменить только для данного конкретного изображения.
При использовании многострочной функции замены утилиты Search and Replace вы можете искать
back.jpg*[] height=?30?
и заменять на
back.jpg% height=?32?
При этом значение атрибута высоты будет изменяться, только если оно будет следовать за именем указанного файла с изображением. Для такого рода целей я с успехом использую Perl, но изучение одновременно и языка Perl, и регулярных выражений (самих по себе представляющих язык) требует значительных умственных усилий, куда больших, чем изучение поддерживаемого Search and Replace подмножества регулярных выражений. Коротко говоря, когда мне в следующий раз понадобится произвести замену сразу в нескольких файлах, я, скорее всего, воспользуюсь именно этой утилитой.
Одна неисправная плата монополизируet сеть 10Base2
Комментарий редактора. Данная заметка подготовлена специалистами компании ProLAN на основе результатов тестирования реально существующей сети. Мы и в дальнейшем планируем публиковать в разделе «Тысяча мелочей» материалы, посвященные выявлению типичных проблем и неисправностей, возникающих в локальных сетях.
При тестировании сети 10Base2 мы столкнулись с одной любопытной проблемой, в случае когда одна рабочая станция имеет неисправную сетевую плату. Проблема заключается в том, что, монополизируя общий канал связи сети, станция с неисправной сетевой платой замедляет работу всех остальных станций. Поскольку неисправность не вызывала появления ошибочных кадров или повышенной загруженности канала связи, у администратора сети до проведенного тестирования была полная иллюзия того, что причиной медленной работы в сети прикладных программ являлись недостатки самих прикладных программ.
Тестируемая сеть состоит из двух сегментов тонкого коаксиального кабеля (10Base2). Сегменты соединены друг с другом посредством двух сетевых плат на сервере. Выделенный сервер сети работает под управлением Novell NetWare 4.10, в качестве рабочих станций используются компьютеры под управлением Windows 95 и Windows 95 OSR2. На компьютерах установлен клиент Microsoft для сетей NetWare, служба NDS и протокол IPX. Вычисленный программой Ftest, индекс производительности всех компьютеров (подробнее об этой программе можно прочитать в статье «Лучше один раз измерить, чем сто раз гадать» из №7-8 LAN за 1999 г.) находится в диапазоне 127—397 пунктов. Среднее значение индекса производительности — 265 пунктов. Среднеквадратичное отклонение (СКО) — 98 пунктов.
При эксплуатации сети проблема проявлялась в том, что рабочие станции сети периодически работали медленно. Предварительный мониторинг сети с помощью анализатора сетевых протоколов не выявил наличия каких-либо неисправностей. Загруженность сети была относительно невысокой, ошибки передачи данных отсутствовали. Проведенный тест FTest by steps в режиме калибровки каких-либо неисправностей также не выявил. Все станции, работая по очереди, имели скоростные характеристики, пропорциональные индексу производительности компьютеров. Таким образом, первые результаты как будто подтверждали мнение администратора о том, что причина медленной работы прикладных программ заключается в их собственных недостатках.
В приведенных Рисунке и Таблице показаны зависимости производительности рабочих станций от нагрузки на сеть, полученные в результате выполнения теста FTest all stations. В этом тесте все рабочие станции генерируют трафик одновременно, что позволяет выявить дефекты сети, являющиеся следствием взаимного влияния одних рабочих станций на другие. Как видно из Рисунка, производительность рабочей станции PC2 растет линейно. Производительность же остальных рабочих станций стабилизируется при значении предлагаемой нагрузки, равном 1066 Кбайт/с. Как видно из Таблицы, производительность рабочей станция PC2 практически равна предлагаемой нагрузке (2 и 4 столбцы Таблицы). Другими словами, станция PC2 работает с той производительностью, с какой ей необходимо. В результате она отнимает пропускную способность у других станций сети. Параметры теста были заданы так, чтобы нагрузка создавалась только на сеть. Диапазон предлагаемых на сеть нагрузок составлял от 100 Кбайт/с до 3 Мбайт/с.
Рисунок. График зависимости производительности от предлагаемой нагрузки на сеть. |
Максимальное значение предлагаемой нагрузки (3 Мбайт/с) в полтора раза превышает теоретическую пропускную способность сети.
В сети Ethernet для доступа к общему каналу связи используется алгоритм CSMA/CD. Этот алгоритм обеспечивает всем станциям приблизительно равные возможности по использованию среды передачи (в данном примере коаксиального кабеля). Другими словами, пропускная способность общего канала связи должна делиться между всеми станциями в сети пропорционально производительности их компьютеров. Монопольное использование канала связи какой-то одной станцией противоречит алгоритму CSMA/CD.
Однако в некоторых сетевых платах алгоритм CSMA/CD может быть реализован не совсем корректно. В нашем примере именно такая плата установлена на рабочей станции PC2. Столь «агрессивное поведение» станции PC2 может быть вызвано двумя наиболее вероятными причинами. Первая причина заключается в том, что перед началом передачи данных неисправная сетевая плата выжидает паузу не 9,6 мкс (как требует алгоритм CSMA/CD), а несколько меньшее время. В результате неисправная сетевая плата начинает передачу несущей раньше других сетевых плат. Действуя по правилам и обнаружив сигнал, остальные станции откладывают свою передачу данных. В результате неисправная сетевая плата передает свои данные «когда хочет» и таким образом монополизирует среду передачи. Остальные же сетевые платы могут передавать данные только в те моменты времени, когда «молчит» неисправная.
Другой причиной «агрессивного поведения» станции PC2 может быть некорректная реализация так называемого алгоритма отката. Это алгоритм применяется при возникновении коллизии в среде передачи. Согласно правилам CSMA/CD, после возникновения коллизии каждая плата должна ждать случайный промежуток времени, длительность которого пропорциональна числу предшествующих коллизий. Если станция с неисправной платой не выдерживает этого промежутка времени и начинает пытаться передавать данные раньше, то она также может монополизировать канал связи сети.
В заключение хотим отметить, что в данном тесте полной монополизации канала связи сети станцией PC2 не происходит. Остальные станции хоть и медленно, но все же могут работать «по очереди» со станцией PC2. Полной монополизации не происходит только из-за относительно низкой производительности компьютера станции PC2 (ее индекс производительности — 126,9 пунктов). Если бы случилось так, что сетевая плата с описанным выше дефектом была установлена на более мощном компьютере, остальные станции сети в момент работы этой станции работали бы значительно медленнее.
Сергей Юдицкий
netproblems@testlab.ipu.rssi.ru
УВАЖАЕМЫЕ ЧИТАТЕЛИ!
Вы можете поделиться своим опытом решения проблем, возникающих при работе в сети (возможно, очень полезным многим читателям в их повседневной работе). Наиболее интересные материалы будут опубликованы в ближайших номерах журнала LAN.
Присылайте ваши отклики по электронной почте: lan@lanmag.ru, или по факсу: (095) 253-9204.
Номер шага | Предлагаемая нагрузка (Кбайт/с) | Производитель-ность PC2(Кбайт/с) | Усредненная производитель-ность по всем агентам (Кбайт/с) | |
для каждого агента | для всех агентов | |||
1 | 9 | 100 | 16 | 16 |
2 | 38 | 422 | 40 | 39,7 |
3 | 68 | 744 | 72 | 71,5 |
4 | 97 | 1066 | 103 | 93,9 |
5 | 126 | 1388 | 127 | 96,8 |
6 | 156 | 1710 | 160 | 98,4 |
7 | 185 | 2032 | 190 | 98,5 |
8 | 214 | 2354 | 214 | 98,6 |
9 | 243 | 2676 | 240 | 99,6 |
10 | 273 | 3000 | 267 | 99,8 |