Наблюдение за производительностью сервера Windows NT производится обычно для того, чтобы определить, достигнут ли максимум производительности по обслуживанию сетевых клиентов или нет? Для достижения этой цели в Windows NT Server имеется ряд средств, которые могут помочь сетевому администратору отобразить и зарегистрировать картину сетевой активности сервера. Эти средства собирают и записывают в файл статистику о работе сервера, на основании которой администратор может найти и исключить причину любой из возникших проблем.
Одной из целей разработчиков Windows NT было исключение многих непродуктивных параметров системы, с помощью которых администраторы влияли на производительность ранних сетевых операционных систем. Вместо этого в Windows NT были встроены адаптивные алгоритмы, которые определяют рациональные параметры системы во время ее работы. Windows NT Server может оптимизировать свои параметры в отношении многих известных сетевых проблем динамически, автоматически перераспределяя свои ресурсы, и не привлекая к решению администратора.
Оптимизация производительности - это процесс работы с имеющимися ресурсами для максимизации производительности по одному из четырех критериев:
Обычно при оптимизации производительности Windows NT администратор начинает этот процесс при заданном наборе ресурсов в терминах быстродействия процессора, объемов оперативной и дисковой памяти. Задача оптимизации производительности включает приоритезацию этих ресурсов и нахождение подходящего баланса. Например, если целью является увеличение доступной оперативной памяти, то администратор может увеличить размер страничного файла, но это приведет к уменьшению доступного дискового пространства.
Если же нужно улучшить одновременно все критерии производительности, то нужно привлекать дополнительные ресурсы, например, более мощный процессор, дополнительную память или более емкий диск.
Выполнение вычислительной задачи может потребовать участия в работе нескольких устройств. Каждое устройство использует определенные ресурсы для выполнения своей части работы. Плохая производительность обычно является следствием того, что одно из устройств требует намного больше ресурсов, чем остальные. Чтобы исправить положение, администратор должен выявить устройство, которое требует наибольшей доли времени выполнения задачи.
При настройке производительности часто используются некоторые термины, которые желательно определить более точно.
Узкое место (bottleneck) - это то устройство системы, которое требует наибольшей доли времени выполнения задачи.
Например, если на выполнение задачи требуется 3 секунды, и 1 секунда тратится на выполнение программы процессором, а 2 секунды - на чтение данных с диска, то диск является узким местом.
Определение узкого места - это критический этап в процессе улучшения производительности. Замена процессора в предыдущем примере на другой, в 2 раза более быстродействующий процессор, уменьшит общее время выполнения задачи только до 2.5 секунд, но существенно исправить ситуацию не сможет, так как мы не устраним этим узкое место. Если же мы купим диск и контроллер диска, которые будут быстрее прежних в 2 раза, то общее время уменьшится до 2 секунд.
Устройство (device). Каждый физический компонент вычислительной системы следует рассматривать как устройство. К устройствам, которые наиболее часто оказываются узким местом системы, относятся процессор, память, диск и его контроллер, а также сетевой адаптер.
Задача (task) - это любой тип вычислительной работы. Задачей может быть обновление таблицы Microsoft Excel или отправка сообщения электронной почты.
Рабочий набор (working set)- это часть оперативной памяти (RAM), которая назначается процессу при выполнении.
Performance Monitor - это утилита, разработанная для фиксации активности компьютера в реальном масштабе времени. С помощью этой утилиты можно определить большую часть узких мест, ухудшающих производительность. Эта утилита также включена в Windows NT Workstation.
Performance Monitor основан на ряде счетчиков, которые фиксируют такие характеристики, как число процессов, ожидающих завершения операции с диском, число сетевых пакетов, передаваемых в единицу времени, процент использования процессора и другие.
Performance Monitor генерирует полезную информацию за счет:
Performance Monitor работает с такими понятиями, как объекты (objects), счетчики (counters) и экземпляры (instances). Объекты характеризуются различными характеристиками, значения которых подсчитываются соответствующими счетчиками. Объект каждого типа может быть представлен в системе несколькими экземплярами. Например, процессор - это объект, процент процессорного времени - это счетчик, а процессор 0 - это экземпляр объекта процессор.
Счетчики генерируют числа, и на основании этих чисел Performance Monitor определяет статистику. Собираемая в течение определенного времени статистика счетчиков отражает тенденции производительности. Это может помочь администратору понять проблему и оптимизировать сеть. Кроме того, такие данные помогают правильно расширять сеть.
Пользователь может устанавливать интервал времени, в соответствии с которым Performance Monitor будет обновлять данные в файлах регистрации (logs), на графиках (graphs) и в отчетах (reports). Каждое из значений счетчика - это среднее из последних двух замеров, разделенных заданным временным интервалом. Задание интервала времени может также сказаться на количестве памяти и процессорного времени, затрачиваемых утилитой Performance Monitor при работе.
Защита данных обеспечивается за счет того, что две функции Performance Monitor доступны только пользователям - членам административной группы. Это: возможность запускать Performance Monitor с приоритетом задачи реального времени и способность активизировать дисковые счетчики.
Данные, собранные Performance Monitor, можно экспортировать в другие программные продукты, такие как электронные таблицы и базы данных для дальнейшего анализа.
12.3.1. Типы объектов
Объекты представляют в Performance Monitor процессы, секции разделяемой памяти и физические устройства. Процесс в Windows NT может представлять приложение (например, Word for Windows), сервис системы (например, Print Spooler) или подсистему окружения (например, Posix).
С каждым из объектов связан ряд счетчиков, значения которых можно наблюдать. В сущности, Performance Monitor предоставляет данные не об объектах, а о счетчиках.
Счетчики обычно включают ссылку на объект, к которому они относятся, в форме ОБЪЕКТ:СЧЕТЧИК. Например, PROCESSOR:%PROCESSOR TIME - это счетчик, учитывающий процент использования для данного процессора.
12.3.2. Процессы и экземпляры
Объект, соответствующий процессу, может быть представлен в нескольких экземплярах. Если в системе одновременно активны четыре процесса, то Performance Monitor будет генерировать данные для четырех экземпляров объекта типа процесс.
Любые объекты могут иметь несколько экземпляров. Например, объект Processor может иметь несколько экземпляров, если система многопроцессорная. Если объект имеет несколько экземпляров, то каждый экземпляр может использовать один и тот же набор счетчиков.
12.3.3. Адреса и нити
Каждый процесс, кроме выполняемого файла, имеет также область виртуального адресного пространства и по крайней мере одну нить. Каждая нить, работающая в операционной системе, отображается как отдельный экземпляр объекта типа нить и идентифицируется процессом, в рамках которого она выполняется. Например, если Printer Manager имеет две активные нити, то Performance Monitor идентифицирует их как экземпляры объектанити с именами Printman = 0 и Printman = 1.
12.3.4. Счетчики
С каждым объектом связан набор счетчиков, которые генерируют данные о различных аспектах производительности объекта. В следующей таблице собраны наиболее влияющие на производительность счетчики.
| Тип объекта | Счетчик | Возможные действия |
| Processor (процессор) | %Processor Time (время занятости процессора) | Если значение этого счетчика постоянно велико, а значения счетчика диска и сетевого адаптера невысоки, то нужно проверить процессор |
| Physical Disk (физический диск) | %Disk Time (время занятости диска) | Если значение этого счетчика постоянно велико, и значение счетчика Disk Queue Length (длина очереди к диску) больше 2, то нужно проверить диск |
| Memory (память) | Pages/sec (скорость обмена страниц) | Если этот счетчик постоянно больше 5, то нужно проверить память |
| Server (сервер) | Bytes Total/sec (скорость обмена с памятью) | Если сумма значений счетчиков Bytes Total/sec для всех серверов сети примерно равна максимальной пропускной способности сети, то сеть нужно сегментировать |
12.3.5. Способы представления данных
Performance Monitor обеспечивает несколько вариантов представления собранных данных: режим просмотра графиков (chart view), режим отчета (report view), режим предупреждения (alert view) и режим регистрации в файле (log view). Режим просмотра графиков позволяет в реальном времени представлять в одном окне экрана в виде двухмерных графиков последовательные значения нескольких счетчиков.
В режиме отчета данные представляются в формате таблицы. Режим предупреждения позволяет во время работы утилиты Performance Monitor продолжать другие работы. При наступлении заранее определенного события монитор предупреждает администратора путем отображения соответствующего экрана. Предупреждение может происходить при первом наступлении события или при каждом. В этом режиме фиксируется максимум 1000 событий. Режим фиксации данных в файле позволяет просмотреть их позже в удобной форме - в виде графиков, отчетов и предупреждений.
12.3.6. Наблюдение за потреблением ресурсов процессора, дисков и памяти
Процессор
Так как процессор всегда выполняет некоторые команды, то теоретически коэффициент его использования всегда равен 100%. Однако в системе имеются так называемые "нити простоя", которые просто выполняют цикл ожидания следующего события для низкоуровневого кода ядра. Время выполнения этих нитей не учитывается при вычислении коэффициента использования в утилите Performance Monitor.
Performance Monitor характеризует использование процессоров объектами двух типов:
В однопроцессорной системе эти значения совпадают.
Для этих объектов имеются три счетчика, связанные с коэффициентом использования:
Если значение счетчика % Processor Time превышает 80%, то это говорит о том, что процессор не справляется с работой, и он должен быть заменен на более мощный (или же должен быть добавлен еще один процессор, если система многопроцессорная).
Аналогичные счетчики существуют и для объекта Process. В этом случае они отражают коэффициент использования процессора только нитями одного конкретного процесса.
Кроме того, имеются и другие счетчики для характеристики работы процессоров, из которых наиболее важными являются следующие:
Счетчик Process: % Processor Time нужно использовать для отслеживания коэффициента использования процессора для всех процессов. Если более чем два процесса претендуют на большую часть процессорного времени, то необходимо заменить или добавить процессор.
Диск
При наблюдении за диском нужно учитывать, что среднее время доступа к данным для большинства дисков находится в пределах от 8 до 18 миллисекунд.
Статистика о работе дисковой подсистемы может помочь в достижении баланса рабочей нагрузки сетевого сервера. Если дисковая подсистема достаточно производительна, то это создает меньшую нагрузку на подсистему виртуальной памяти и программы будут выполняться быстрее. Performance Monitor поддерживает два типа объектов, которые содержат счетчики дисковой подсистемы:
С производительностью диска тесно связаны два счетчика: Disk Queue Length - средняя длина очереди запросов к диску, и Average Disk sec/Transfer - среднее время выполнения одного запроса к диску.
На основании значений этих счетчиков можно вычислить такой важный показатель, как среднее время ожидания в очереди, которое хорошо отражает производительность дисковой подсистемы.
Среднее время ожидания в очереди = Disk Queue Length x Average Disk sec/Transfer.
Обычно дисковые счетчики в системе отключены чтобы не снижать ее производительности.
Память
Оптимизация памяти состоит в определении трех вещей:
Для определения корректного значения физической памяти необходимо выполнить два шага. Во-первых, решить, нужна ли дополнительная память. Во-вторых, определить количество требуемой дополнительной памяти.
Решение о том, что дополнительная память нужна, принимается на основании количества страничных обменов, которые выполняет система. Если страничный обмен ведется интенсивно, то производительность существенно снижается.
Для того, чтобы определить, что страничный обмен ведется слишком интенсивно, нужно вычислить произведение:
Memory: Pages/sec x Logical Disk: Avg. Disk sec/Transfer,
где Logical Disk относится к диску, на котором находится страничный файл PAGE-FILE.SYS.
Это произведение равно доле времени доступа к диску, которое тратится на страничные обмены. Если эта доля больше 10% (0.1), то система нуждается в дополнительной памяти.
Следующий шаг состоит в определении количества дополнительной памяти. Эта величина определяется на основании значения счетчика Process: Working Set для каждого активного процесса в системе. Нужно по очереди завершать процессы в системе (начиная с процесса с самым большим значением рабочего набора) и следить за интенсивностью страничного обмена. После того, как интенсивность страничного обмена уменьшится до приемлемой величины, нужно найти суммарный объем памяти, потребляемой завершенными процессами, сложив их рабочие наборы. Этот объем и будет величиной требуемой дополнительной памяти.
Наблюдение за сетевой активностью включает:
С сетевой активностью связано большое количество счетчиков. Все сетевые компоненты - Server, Redirector, протоколы NetBIOS, NWLink, TCP/IP - генерируют набор статистических параметров. Ненормальное значение сетевого счетчика часто говорит о проблемах с памятью, процессором или диском сервера. Следовательно, наилучший способ наблюдения за сервером состоит в наблюдении за сетевыми счетчиками в сочетании с наблюдением за такими счетчиками, как %Processor Time, %Disk Time и Pages/sec.
Например, если сервер показывает резкое увеличение счетчика Pages/sec одновременно с падением счетчика Total bytes/sec, то это может говорить о том, что компьютеру не хватает физической памяти для сетевых операций.
Хотя имеется очень мало возможностей для непосредственной оптимизации сетевого адаптера, но сам выбор хорошего адаптера может удвоить производительность Windows NT Server. Для выбора сетевого адаптера имеются некоторые соображения. Во-первых, нужно выбирать такой адаптер, который использует всю разрядность шины ввода-вывода компьютера. Если компьютер имеет шину EISA, то нужен адаптер для этой шины, а не 8- или 16-разрядный адаптер.
Во-вторых, выбор сетевого адаптера включает выбор драйвера адаптера. Для Windows NT нужно выбирать адаптер, сертифицированный для работы по спецификации NDIS 3.x. Такую информацию можно найти в списке Windows NT Hardware Compatibility.
Хотя редиректор Windows NT (сервис Workstation) является самонастраивающимся, администратор должен следить за показаниями нескольких счетчиков:
Current Commands - это количество команд, которые находятся в очереди к редиректору. Если это число больше, чем одна команда на один сетевой адаптер, то редиректор может быть узким местом в системе. Это может происходить по трем причинам:
Если выявлена перегруженность сети, то, возможно, ее можно несколько разгрузить за счет сегментации сети.
Network Errors/sec - это интенсивность возникновения серьезных сетевых ошибок, обнаруженных редиректором. Наличие таких ошибок говорит о том, что нужны дополнительные исследования. Целесообразно использовать для этой цели регистратор событий Event Log.
Производительность редиректора может ограничиваться за счет низкой производительности удаленных серверов, с которыми взаимодействует редиректор. В Performance Monitor есть два счетчика - Reads Denied/sec и Writes Denied/sec, ненулевые значения которых свидетельствуют о том, что удаленные серверы испытывают трудности с выделением оперативной памяти. Необходимо проверить серверы, с которыми данный редиректор обменивается большими файлами. Если на них нет возможности увеличить объем памяти, используемой для режима RAW I/O (рассматривается ниже), то на рабочей станции нужно запретить использование этого режима. Это делается с помощью установки переменных UseRawReads и UseRawWrites в состояние False.
Оптимизация Windows NT Server подобна оптимизации Windows NT Workstation за несколькими исключениями:
Серверные компоненты Windows NT можно сконфигурировать из панели Network утилиты Control Panel. Имеется четыре общих установки:
Процесс обработки сетевых запросов сервером можно наблюдать с помощью счетчика WorkItemShortage объекта Server, а влиять на этот процесс можно путем задания значений для двух переменных базы Registry - InitialWorkItems и MaximumWorkItems. Work Item - это рабочая структура, которая используется сервером для постановки в очередь сетевых запросов от клиентов. Если сервер перегружен, то запрос от клиента может быть отклонен, так как в наличии нет свободной рабочей структуру для его фиксации. При возникновении такого события Performance Monitor наращивает значение счетчика WorkItemShortage. Администратор должен отслеживать этот счетчик и изменять значения переменных Registry, если это необходимо.
Два счетчика информируют администратора о том, что сервер достиг границы максимально доступной для него памяти:
12.8.1. Ознакомление с функциональными возможностями Performance Monitor
Упражнение 1. Создание графика в реальном времени.
Установка параметров графика:
Появится график, отображающий активность процессора в реальном масштабе времени.
Генерация активности процессора:
Примечание: для подсветки одного из графиков нужно выбрать его, а затем нажать CTRL+H;
Упражнение 2. Регистрация активности процессора.
Для регистрации информации в файле на диске:
Появится окно Performance Monitor, показывая динамически увеличивающийся размер файла PPP.LOG. При старте процесса регистрации значения всех счетчиков выбранного объекта (объектов) автоматически начинают заноситься в файл регистрации;
Для отображения зарегистрированной информации:
Упражнение 3. Просмотр данных в определенном интервале и создание отчета.
Для задания интервала просмотра данных:
Для создания отчета.
12.8.2. Идентификация и устранение узкого места
Сначала необходимо будет измерить производительность до появления в системе узкого места. Затем искусственно создается узкое место. С помощью Performance Monitor необходимо определить, что это за узкое место, и найти способ его устранения.
Для этого нужно:
Подготовительные действия
Эта предварительная работа состоит из:
Утилиты с дискеты нужно скопировать в каталог c:\perf
Для создания тестирующего файла необходимо:
Для включения дисковых счетчиков:
Упражнение 1. Измерение производительности.
В этом упражнении необходимо запустить приложение TEST1.EXE из каталога c:\perf для измерения времени его выполнения. Затем, после создания в системе узкого места, нужно снова запустить это приложение, чтобы увидеть, как изменилась производительность системы по его выполнению.
Установка приоритетов приложений:
Запуск теста перед созданием узкого места:
Для создания узкого места:
Теперь у вас имеются времена выполнения теста до и после создания узкого места. В следующем упражнении нужно определить причину, создающую узкое место, и устранить ее.
Упражнение 2. Определение устройства, являющегося узким местом.
В этом упражнении вы создадите отчет для выявления узкого места.
Для создания отчета:
| Object | Counter | Instance |
| Processor | %Processor Time | 0 |
| Physical disk | %Disk Time | 0 и 1 (если существует) |
| Memory | Pages/sec | не определена |
Идентификация узкого места:
Упражнение 3. Определение процесса, который является причиной того, что процессор стал узким местом.
Создание графика:
Идентификация приложения:
Упражнение 4. Определение и изменение приоритетов.
В этом упражнении вы сможете определить приоритеты выбранных приложений.
Запуск теста:
Определение значений приоритетов:
Изменение приоритетов приложений переднего и заднего плана:
Просмотр приоритетов:
Упражнение 5. Очистка системы.
В этом упражнении вы приведете систему в состояние, необходимое для выполнения упражнений по следующей проблеме:
12.8.3. Использование Performance Monitor для анализа файлового кэша
В этой части лабораторной работы Performance Monitor будет использоваться для :
Оценка выигрыша в производительности операций ввода-вывода при использовании кэша.
Упражнение 1. Подготовка компьютера.
Упражнение 2. Сквозная запись (write-through) в кэш.
Конфигурирование Performance Monitor:
В файле WCACHE.PMC установлен режим Gallery to Graph, Periodic Update с интервалом 0.5 с, а также добавлены следующие счетчики к графику:
| Object | Counter | Instance | Описание |
| Memory | Cache bytes | - | Объем памяти, назначенной файловому кэшу |
| Cache | Lazy write Bps | - | Интенсивность записи на диск байт в "ленивом" режиме Cache Manager |
| Physical Disk | Disk write Bps | 0 | Интенсивность записи байт, реально записанных на диск |
Конфигурирование теста ввода-вывода:
Наблюдение и тестирование производительности:
Анализ производительности:
После записи данных (как в режиме write-behind, так и в режиме write-through), до тех пор, пока системе не нужна память, отведенная под кэш, данные остаются в нем, пока файл не закроется. Когда файл закрыт (как можно видеть из графика), данные исчезают из кэша. Когда файл снова начинает последовательно читаться, и если страницы кэша не были еще использованы менеджером виртуальной памяти для других целей, то эти страницы будут быстро отображены снова в кэш и данные будут прочитаны из кэша, без обращения к диску.
Этот факт будет анализироваться в следующем упражнении.
Упражнение 4. Чтение данных из кэша.
Конфигурирование Performance Monitor:
В файле RCACHE.PMC установлен режим Gallery to Graph, Periodic Update с интервалом 0.5 с, а также добавлены следующие счетчики к графику.
| Object | Counter | Instance | Описание |
| Memory | Cache bytes | - | Объем памяти, назначенной файловому кэшу |
| Cache | Fast reads/sec | - | Интенсивность успешных операций чтения из кэша |
| Physical Disk | Disk read bytes/sec | 0 | Интенсивность чтения байт, реально считанных с диска |
Наблюдение и тестирование производительности:
Анализ производительности:
Упражнение 5. Чтение данных не из кэша.
Конфигурирование Performance Monitor:
Создание ситуации чтения данных непосредственно с диска.
Мы хотим, чтобы тест читал данные непосредственно с диска. Однако, данные по прежнему находятся в памяти, как мы убедились в предыдущем тесте. Поэтому, нужно использовать страницы, хранящие данные кэша. Для этого:
Измерение производительности чтения:
12.8.4. Изучение анализатора протоколов Network Monitor
Часть 1. Инсталляция Network Monitor
Часть 2. Работа с Network Monitor
Задание:
Назад | Содержание | Вперед