2. Нагрузочные измерения и их трактовка
В приведенной ниже таблице приводятся времена выполнения операции поиска в зависимости от числа одновременно выполняющих данную операцию рабочих станций (столбец N). Время измеряется в единицах длительности выполнения данной операции в сети Netware на одной станции. В сети Netware использован 32-разрядный сетевой клиент Novell.
Аналогичные результаты получаются и для операции "листания", но для нее трудно добиться точной одновременности проведения операции на всех рабочих станциях. Поэтому данные результаты не приводятся.
Таблица 1 (Time)
|
N |
NetWare |
NT |
W95-IPX |
W95-NETBEUI |
W95-NETBIOS |
|
1 |
1 |
1.15 |
1.13 |
1.25 |
1.39 |
|
2 |
1.03 |
1.23 |
1.28 |
1.4 |
1.59 |
|
3 |
1.14 |
1.37 |
1.55 |
1.81 |
1.94 |
|
4 |
1.26 |
1.52 |
1.98 |
2.37 |
2.48 |
|
5 |
1.4 |
1.74 |
2.56 |
3.21 |
3.32 |
|
6 |
1.61 |
2.06 |
|
|
|
|
7 |
1.79 |
2.44 |
|
|
|
|
Здесь и в следующих таблицах:
столбец "Netware" - сервер Netware 4.11 (процессор Intel 486 DX4/100 16Mb RAM, IDE disk);
"NT" - сервер Windows NT3.51 (процессор Intel Pentium 90 32Mb RAM, IDE disk), использовался только протокол NETBEUI;
"W95-IPX" - рабочая станция Windows 95, на которой эмулировался сервер Netware (процессор Intel 486 DX4/100 16Mb RAM, IDE disk);
"W95-NETBEUI" - рабочая станция Windows 95, c запущенной службой разделения файлов Microsoft (процессор Intel 486 DX4/100 16Mb RAM, IDE disk), использовался только протокол NETBEUI;
"W95-NETBIOS" - рабочая станция Windows 95, c запущенной службой разделения файлов Microsoft (процессор Intel 486 DX4/100 16Mb RAM, IDE disk) использовался только протокол IPX-NETBIOS;
По результатам, приведенным в таблице, можно сделать несколько выводов.
Во-первых, имеет место достаточно быстрое нарастание времени выполнения операции с его удвоением при одновременной работе 5-7 станций.
Во-вторых, наибольшее быстродействие показала сеть Netware. Этот вывод еще усиливается тем обстоятельством, что в качестве сервера использовалась обычная рабочая станция (486 процессор и 16 Мбайтное ОЗУ), настроенная как сервер Netware 4-11. Сервер NT имел процессор Pentium-90 и 32 Мбайтное ОЗУ). В сети NT использовался протокол NETBEUI, заменить который было нельзя.
В-третьих, наименьшее быстродействие показала одноранговая сеть, особенно на протоколах NETBIOS и NETBEUI. В этой сети имеет место и самое сильное увеличение времени выполнения операции при увеличении числа работающих станций: для пяти станций по сравнению с одной станцией время увеличивается более, чем в два раза.
Ниже, для наглядности, эти же результаты приводятся в графическом виде:
Для того, чтобы понять причины вышеописанного поведения необходимо рассмотреть степень использования сетевых ресурсов: канала (Chanel Utilization) и процессора сервера (Server Utilization). Они приведены в следующих таблицах 2 и 3.
Таблица 2 (Chanel Utilization)
|
N |
NetWare |
NT |
W95-IPX |
W95-NETBEUI |
W95-NETBIOS |
|
1 |
0.6 |
0.6 |
0.6 |
0.6 |
0.5 |
|
2 |
0.12 |
0.12 |
0.12 |
0.11 |
0.1 |
|
3 |
0.17 |
0.17 |
0.17 |
0.16 |
0.14 |
|
4 |
0.2 |
0.2 |
0.2 |
0.18 |
0.15 |
|
5 |
0.23 |
0.21 |
0.21 |
0.19 |
0.16 |
|
6 |
0.25 |
0.22 |
|
|
|
|
7 |
0.26 |
0.23 |
|
|
|
|
Таблица 3 (Server Utilization)
|
N |
NetWare |
NT |
|
1 |
0.16 |
0.2 |
|
2 |
0.26 |
0.4 |
|
3 |
0.37 |
0.5 |
|
4 |
0.44 |
0.6 |
|
5 |
0.5 |
0.65 |
|
6 |
0.53 |
0.67 |
|
7 |
0.57 |
0.67 |
|
По результатам, приведенным в этих таблицах, можно сделать следующие выводы.
Во-первых, при числе станций больше 3 прекращается линейный рост утилизации (загрузки) канала и утилизации сервера и проявляется какое-то ограничение сверху для роста утилизации каждого из сетевых ресурсов. Это и служит причиной быстрого увеличения времени выполнения операции.
Во-вторых, наблюдаемые уровни этих верхних ограничений далеки от предельно допустимых для каждого из сетевых ресурсов, особенно для канала (утилизация далека от 100%). Это значит, что сетевые ресурсы по какой-то внесетевой причине в значительной мере недоиспользуются.
Ниже, для наглядности, зависимости утилизации сервера и канала от числа одновременно работающих станций приводятся в графическом виде:
Причины насыщения сетевых ресурсов становятся ясными только в результате изучения канальной трассы, зафиксированной анализатором сетевых протоколов.
Оказывается дело в том, что даже пассивные операции поиска и листания в пакете "Х" осуществляются с блокированием записей в индексных файлах базы данных. В случае возникновения конфликтов нескольких рабочих станций на некоторой записи, работа всех их, кроме одной, полностью блокируется (останавливается) до завершения операции обработки записи не блокированной станцией. Затем возможность выполнить обработку данной записи получит опять только одна станция и т.д. Время обработки записи достаточно велико (10-15 млсек). В операциях поиска и листания активно используется всего четыре индексных файла. Когда количество одновременно работающих станций превышает четыре, вероятность конфликта на записях становится достаточно большой, чтобы сказаться на времени выполнения всей операции.
Кроме этого прослеживается еще и дополнительная задержка в тех случаях, когда сервер успевает оповестить рабочие станции о блокировке записей. В этом случае поведение станции зависит от установленного на ней сетевого клиента. В случае клиента Microsoft станция задерживает повторную попытку на 50 млсек, а в случае 32-разрядного клиента Novell - повторяет попытку сразу же после получения оповещения о блокировке. В последнем случае для 5 одновременно работающих станций время выполнения операции листания на 15% и операции поиска на 20% меньше. Такие данные и приведены в таблице 1 для сети Netware. После того, как мы заставили и клиента Microsoft повторять попытку обработки записи немедленно, наблюдалось такое же уменьшение времени выполнения операций листания и поиска.
Теперь обратимся к результатам, полученным на активной операции проводки в документе. К сожалению нагрузочных измерений на этой операции провести невозможно, так как она проводится с блокированием операции занесения во все индексные файлы. Это приводит к тому, что такую операцию может одновременно выполнять только одна рабочая станция. Сетевые ресурсы при этом загружаются очень незначительно: канал - на 5%, а сервер - на 16%. Проведение активной операции на фоне пасcивных операций, выполняемых несколькими рабочими станциями, показывает незначительное увеличение времени выполнения активной операции: на 20% при 4 станциях и на 40% при 6 станциях, одновременно выполняющих пассивную операцию.
При этих испытаниях удалось случайно выявить явную ошибку в пакете, ведущую к зависанию сети, которое можно снять манипуляциями только на одной рабочей станции. К возникновению зависания ведет следующий сценарий. Запускается операция поиска в журнале операций одновременно на 2-3 рабочих станциях и затем запускается операция проводки в документе одновременно еще на двух рабочих станциях. Эта операция пойдет только на одной станции, а вторая получит оповещение о блокировки с предложением повторить запуск. Если повторный запуск сделать сразу после завершения активной операции на первой станции, то одна из станций, ведущих операцию поиска зависнет. При этом останутся заблокированными как станция, ведущая активную операцию, так и станции, ведущие поиск. Зависшая станция выдаст сообщение о завершении операции поиска, хотя по времени он еще не может быть завершен. Снятие этого сообщения еще не ведет к разблокировке сети. Только дополнительные действия в журнале операций, хотя бы простейшее выделение строки приводит к снятию блокировки.
|