Как узнать, кто загружает сервер Exchange

Программа Exchange Server User Monitor (ExMon), о выпуске которой техническая группа Exchange Server объявила в апреле 2005 г., позволяет администраторам Exchange проверять жалобы пользователей на то, что электронная почта работает слишком медленно, и оперативно реагировать на эти сообщения. С помощью ExMon они могут практически в реальном времени отслеживать функционирование соединений отдельных клиентов Outlook с сервером Exchange и при необходимости выявлять случаи слишком интенсивного потребления ресурсов (скажем, чрезмерных нагрузок на процессор). Кроме того, ExMon позволяет оценить, как влияют действия пользователей на состояние системы Exchange. ExMon — превосходное средство оперативного анализа основных рабочих характеристик системы (не путать с детальным анализом этих характеристик). В основу изделия положена подсистема Event Tracing for Windows (ETW), разработанная специалистами Microsoft для не требующего больших расходов исследования приложений Windows. С основными принципами работы ETW можно ознакомиться по адресу http://blogs.msdn.com/matt_pietrek/ archive/2004/09/16/230700.aspx.

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

Установка ExMon

ExMon может функционировать в двух режимах: в режиме сбора данных (data collection) и в режиме просмотра данных (data viewing). Для сбора данных на сервере Exchange утилиту ExMon следует установить на сервере.

Возможность сбора данных на удаленной системе, где не установлена программа ExMon, не предусмотрена. ExMon может взаимодействовать как с Exchange 2000 Server, так и с системой Exchange Server 2003. Однако при установке ExMon на сервере Exchange 2000 необходимо использовать пакет обновлений Exchange 2000 Service Pack 2 (SP2) или более поздней версии. На системах Exchange 2003 ExMon может функционировать только после модернизации системы до уровня Exchange 2003 SP1 или более поздней версии. Если установить ExMon на сервере Exchange для сбора данных по эксплуатационным характеристикам, можно будет позднее просмотреть полученные данные.

Если же нужно просто просмотреть файлы данных ExMon, устанавливать программу на сервере Exchange необходимости нет. Достаточно установить ее на сервере Windows (на котором не выполняется система Exchange) и просмотреть файлы данных, сформированные с помощью ExMon на сервере Exchange. Правда, в этом случае следует учитывать определенные требования и ограничения.

Если файлы данных ExMon были созданы на сервере Windows Server 2003, просмотреть эти данные ExMon можно будет только на сервере Windows 2003 с установленной утилитой ExMon. Однако, если файлы данных ExMon были созданы на системе Windows 2000 Server, у пользователей более широкий выбор. Можно просматривать файлы данных с помощью программы ExMon, установленной на сервере Windows 2003, на сервере Windows 2000 или даже на рабочей станции Windows XP. При выполнении в этих операционных средах ExMon не имеет привязки к тем или иным пакетам обновлений, хотя, конечно, всегда полезно следить за тем, чтобы в операционной системе были установлены все новейшие исправления. Версия системы Exchange, на которой был создан тот или иной файл данных, никоим образом не влияет на выбор версии операционной системы, с помощью которой будет просматриваться этот файл.

ExMon можно загрузить с Web-узла Microsoft по адресу http://www.microsoft.com/exchange/tools/2003.asp. По завершении процесса загрузки у вас будет один файл Windows Installer с расширением .msi, а именно файл exmon.msi. Следует дважды щелкнуть на его значке, и программа по умолчанию будет установлена в папку Program Files Exmon, хотя, разумеется, местонахождение этой папки можно и изменить. ExMon не относится к приложениям, активно загружающим подсистему ввода/вывода; специалисты Microsoft утверждают, что коэффициент использования процессора проверяемой системы минимален (по их словам, менее 2%). Однако следует помнить, что размещение приложений на системном томе в любом случае нежелательно, так что для установочного каталога ExMon лучше подобрать другое место. Кроме того, в процессе использования этого инструмента можно указать отдельное место для размещения файлов регистрации собранных данных. Не стоит размещать собранные для ExMon данные в томах, используемых системой Exchange (например, в томах, где хранятся файлы баз данных Exchange, файлы регистрации транзакций или каталоги запросов). Дело в том, что выполняемые ExMon операции ввода/вывода могут воспрепятствовать нормальной обработке размещенных в этих томах файлов Exchange.

Инсталляция продукта, строго говоря, не является установочной процедурой. После двойного щелчка на файле .msi будут распакованы утилита ExMon, а также три вспомогательных файла — не более того. После распаковки этих файлов следует открыть окно командной строки и перейти в каталог, где они расположены. На рисунке показан каталог установки, созданный после запуска файла exmon.msi. В файле Using_Exmon.doc содержится полезная информация об использовании этого средства. Перед тем как запускать утилиту ExMon для сбора и просмотра данных, необходимо создать две относящиеся к ExMon записи в системном реестре (они описаны в таблице). Чтобы это сделать, в окне командной строки, показанном на экране. 1, введите команду

exmon.reg

Служба Exchange System Attendant в течение нескольких минут выявит изменения в подразделе реестра (обычно на это уходит менее 15 минут); при этом вновь активизировать службы Exchange или перезапускать сервер не требуется.

Экран 1. Каталог установки ExMon

После того как запись реестра RpcEtwTracing будет активизирована, система Windows сможет получать информацию о производительности с помощью технологии ETW. Сам факт активизации параметра в системном реестре не оказывает влияния на производительность системы Exchange. Но если вы в настоящее время не используете ExMon для мониторинга состояния системы (и не намереваетесь проводить мониторинг в ближайшее время), Microsoft рекомендует или установить его значение равным 0, или удалить этот параметр реестра. Кстати, если запустить утилиту Exchange Server Best Practices Analyzer (ExBPA), она укажет на параметр реестра RpcEtwTracing как на потенциальную проблему. Объясняется это тем, что администратор не должен работать с системой, настроенной на получение данных мониторинга, если только он не занимается выяснением причин снижения быстродействия или не определяет базовый уровень производительности системы (в процессе мониторинга система подвергается лишней нагрузке).

Сбор данных с использованием ExMon без привлечения других средств

Сбор данных для просмотра средствами ExMon можно осуществлять с помощью данной утилиты, посредством программы System Monitor, а также используя инструменты командной строки. Сбор данных посредством ExMon не вызывает особых затруднений. Утилита запускается двойным щелчком на файле exmon.exe в окне Windows Explorer, после чего автоматически начинается сбор данных. По умолчанию интервал между сообщениями составляет 1 минуту. Сначала экран ExMon остается пустым, но по истечении первой минуты на нем появляются усредненные значения данных за этот интервал (см. экран 2). Прекратить сбор данных можно в любое время. Для этого нужно щелкнуть на значке Stop (черный квадрат), который размещен на панели инструментов (или выбрать пункт Stop в меню File); подобным же образом можно возобновить сбор данных, щелкнув на размещенном на панели инструментов значке Start (указывающая вправо стрелка) или через меню File.

Экран 2. Окно с данными, собранными утилитой ExMon

По мере поступления данных о рабочих характеристиках системы эти данные регистрируются во временном файле. Файл размещается в каталоге, который был выбран в процессе установки утилиты, или в другом указанном каталоге. ExMon создает имя файла из имени сервера и псевдослучайного идентификатора, а также дает ему расширение .etl (например, MARKOV-428b6c81.etl). Это расширение имеют регистрационные файлы трассировки событий.

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

Если при исследовании отображаемой утилитой ExMon информации у вас возникнет впечатление, что значительная часть нагрузки на процессор генерируется одним пользователем, не торопитесь бить тревогу. Отображаемый показатель использования процессора представляет собой не созданную пользователем часть общей нагрузки на ЦП системы, а приходящуюся на данного пользователя долю времени процессора, затраченного на процесс Exchange Store, так что даже в многопроцессорной системе сумма приходящихся на отдельных пользователей процентных долей загрузки процессора составляет не более 100%. Нужно иметь в виду, что ExMon позволяет получать лишь «моментальные снимки» общей картины использования ресурсов; при установке непродолжительных интервалов выборочного наблюдения возможно, что показатели отдельных пользователей будут выделяться на общем фоне, особенно если они в это время выполняют операции, требующие активного участия процессора. Как явствует из примера, приведенного на экране 2, в течение интервала выборочного наблюдения продолжительностью в одну минуту пользователь CA M. Loughran задействовал 28% ресурсов процессора. Мне известно, что данный пользователь в этот период как раз присоединял к сообщению электронной почты объемный файл, и именно этим объясняется высокий коэффициент использования им ресурсов процессора. При назначении более продолжительных периодов выборочного наблюдения ресурсы процессора распределяются между пользователями более равномерно. В таких условиях стоит внимательно присмотреться к работе сотрудников, потребляющих очень большие объемы ресурсов процессора, чтобы выяснить, какие именно операции они выполняют. Время от времени в окне результатов проверки ExMon появляются такие записи, где в графе «имя пользователя» ничего не проставлено, а в графах, отображающих использовавшиеся системные ресурсы, значатся низкие показатели. Такая запись показана, в частности, на экране 2. Подобные записи свидетельствуют о том, что утилита ExMon зафиксировала факт регистрации в системе клиента и начала сбор информации о его работе, но пока что не смогла установить имя пользователя, инициализировавшего этот процесс.

В строке состояния в нижней части окна ExMon содержатся дополнительные сведения, включая поле Captured. Этот показатель представляет выраженную в процентах долю от общего объема использованных ресурсов Information Store, зафиксированную средствами ExMon. Дело в том, что ExMon собирает данные только по клиентам Messaging API (MAPI); клиенты других типов, такие как Outlook Web Access (OWA), POP3 и IMAP4, потребляют Information Store, но не попадают в поле зрения ExMon.

Сбор данных с применением программы System Monitor

В случае необходимости получения данных о рабочих характеристиках системы за время свыше 30 минут администратор может воспользоваться стандартным средством System Monitor. С помощью этой программы можно, к примеру, записывать системную информацию с 9 часов утра до 5 часов вечера. Можно настроить программу так, чтобы данная операция выполнялась ежедневно. В этом случае можно просматривать файлы регистрации данных о производительности системы в любое удобное время и необязательно на производственных серверах Exchange.

Чтобы начать сбор данных ExMon на базе System Monitor, следует запустить консоль Performance Monitor (в меню Start выбрать пункт Run и ввести символы perfmon), открыть узел Performance Logs and Alerts, правой клавишей мыши щелкнуть на Trace Logs и выбрать пункт New Log Settings. Введите имя регистрационного журнала и щелкните на кнопке Add, чтобы добавить несистемный провайдер Exchange Information Store. Далее в поле Run As нужно добавить учетную запись, с которой можно создать журнал регистрации ExMon (эта учетная запись должна быть как минимум членом встроенной группы Administrators на сервере Exchange, где планируется осуществлять мониторинг). Кроме того, для установки пароля потребуется щелкнуть на кнопке Set Password. Можно установить и другие параметры, скажем, время начала и время окончания операции регистрации. На экране 3 показано, какие параметры я указываю для файла регистрации ExMon при сборе данных с помощью System Monitor.

Экран 3. Добавление журнала регистрации System Monitor ExMon

В ходе выполнения операций ExMon на базе System Monitor утилита создает файлы регистрации с расширением .etl в каталоге, указанном пользователем в разделе свойств регистрационного журнала. В этом случае необходимо удостовериться, что данный каталог не принадлежит системному тому или любому другому тому, где размещаются файлы Exchange, такие как базы данных и журналы регистрации транзакций.

Прогнозировать темпы роста объема файлов регистрации — задача непростая, поскольку размеры файлов в значительной степени определяются активностью пользователей. Но для получения примерных оценок можно исходить из того, что в результате деятельности одного работающего в сети пользователя файл ежечасно увеличивается примерно на 50 Кбайт. Так, в моей системе, к которой приписано 283 активных пользователя Outlook, регистрационный файл .etl достиг размера 5632 Кбайт уже после 30 минут работы. Иначе говоря, он увеличивался со скоростью примерно 40 Кбайт в час в расчете на одного активного пользователя. При эксплуатации ExMon в режиме прямого сбора данных темпы роста регистрационного файла будут приблизительно в два раза выше, потому что в этом режиме файлы дублируются, а когда используется режим сбора данных с помощью System Monitor, объем файла .etl возрастает со скоростью примерно 50 Кбайт в час в расчете на одного пользователя. По завершении периода сбора данных с помощью средства System Monitor утилита оставляет файл .etl, содержащий данные о производительности за этот период, присваивая ему имя в формате, показанном в поле Current log file name на экране 3.

Чтобы просмотреть эти данные, нужно переместить файл .etl в каталог, где размещается файл exmon.exe, и в окне командной строки ввести текст:

exmon.exe «»

где « означает маршрут доступа к регистрационному файлу .etl и его имя. Вводить двойные кавычки не обязательно.

Сбор данных ExMon с помощью интерфейса командной строки

Третий метод ввода данных ExMon состоит в использовании интерфейса командной строки. Он предпочтителен в тех случаях, когда администратор намеревается собирать данные о рабочих характеристиках системы с помощью сценария. Чтобы начать трассировку данных средствами ExMon и создать файл регистрации .etl, требуется ввести следующую команду (в одной строке):

tracelog.exe
-start «Exchange Tracing»
-f 
-giud 

Как и в ранее приведенном примере, означает путь доступа к файлу регистрации .etl и его имя; означает путь доступа к файлу guid.txt, который по умолчанию размещается в том же каталоге, что и файл exmon.ex, и его имя. Утилита TraceLog входит в состав комплекта Microsoft Windows 2000 Server Resource Kit. Ее можно загрузить с Web-узла Microsoft по адресу http://www.microsoft.com/windows2000/techinfo/reskit/ tools/existing/tracelogo.asp. Для того чтобы прекратить вывод TraceLog и закрыть файл .etl, нужно выполнить команду

tracelog.exe
-stop «Exchange Tracing»

В результате будет получен файл .etl, аналогичный тому, который генерируется программой System Monitor. Его можно открыть с помощью утилиты ExMon, как описано выше.

ExMon — вполне добротная и стабильная утилита. И тем не менее известны случаи, когда функция трассировки данных оставалась активной после аварийного зависания ExMon (что бывает редко) или после того, как данный процесс был явным образом прекращен (что более вероятно). Такая ситуация может возникнуть при работе в любом из трех режимов сбора данных ExMon. В числе симптомов этой ситуации — постоянно растущие размеры файла .etl и сообщение Unknown Start Trace Error (183), появляющееся на экране, когда вы пытаетесь запустить ExMon напрямую. Поток сбора данных будет по-прежнему выполняться до тех пор, пока размер файла .etl не составит 512 Мбайт, после чего трассировка будет прекращена. Впрочем, можно в любое время прекратить трассировку с помощью переключателя TraceLog — stop, как было указано выше.

Работа с ExMon

Чтобы иметь доступ к данным ExMon, пользователи должны быть подключены через интерфейс MAPI (скажем, с помощью клиента Outlook или собственного клиента Exchange Capone). Пользователям, подключенным по другим протоколам (таким, как POP3, IMAP4, OWA или Outlook Mobile Access, OMA), данные о рабочих характеристиках системы не предоставляются. ExMon не собирает информации по отдельным пользователям Mobile Exchange, подключенным через ActiveSync, но ActiveSync, в сущности, выступает в роли клиента MAPI; поэтому сводные данные о производительности могут быть собраны для пользователей ActiveSync. Информация о MAPI-соединениях на стороне сервера (например, данные Exchange System Manager-ESM) средствами ExMon не обрабатывается.

ExMon безупречно функционирует как в среде Exchange 2003 SP1 или более новой версии, так и в среде Exchange 2000 SP2 или более новой версии. Но наилучшие результаты при сборе данных с помощью ExMon можно получить в системе Exchange 2003 SP1 под Windows 2003. Когда утилита ExMon (в любом режиме сбора данных) запускается на платформе Exchange 2000, все клиенты демонстрируют номер версии 0.0.0 (см. экран 2). Но при функционировании на платформе Exchange 2003 ExMon отображает точную информацию о версии клиентов. Если для получения доступа к своим папкам входящих сообщений Exchange пользователи применяют несколько клиентов, система отобразит все текущие версии клиентов и их IP-адреса. Так, если пользователь для получения доступа к своей папке «Входящие» одновременно работает с клиентами Outlook и OWA с двух систем, в поле Client Versions будут отображены два значения, а в поле Client IP Addresses — два адреса. Если этот пользователь является к тому же пользователем клиента Research In Motion (RIM) BlackBerry, в каждом из упомянутых полей будет отображено и третье значение, представляющее соединение с сервером клиента BlackBerry. Счетчики Avg.Foreground Client Latency (ms) и Max. Foreground Client Latency (ms) утилита ExMon отображает лишь при взаимодействии с сервером Exchange 2003 SP1 или более новыми версиями и только если в качестве клиента используется Microsoft Office Outlook 2003 или более новые версии. Кроме того, представление данных By Clientmon, в котором отображаются сведения о сервере, такие как время ЦП и процент загруженности ЦП, и информация о клиентах, например значение задержки RPC (RPC Latency) и счетчик успешно выполненных соединений RPC (Succeeded RPC Count), предусмотрено в утилите ExMon только при использовании клиентов Outlook 2003.

Данные ExMon можно отображать в трех представлениях: By User, By Version или By Clientmon. В представлении By User (см. экран 2) агрегированные данные ассоциируются с отдельными пользователями Exchange. В представлении By Version информация организована в соответствии с MAPI-версией того или иного клиента. Представление By Clientmon отображает сведения о рабочих характеристиках, собранные у клиентов Outlook 2003.

Использование ExMon в режиме оперативного сбора данных с непродолжительными интервалами выборочного наблюдения (одна или две минуты) дает хорошие результаты в тех случаях, когда требуется выяснить причины снижения рабочих характеристик для отдельных пользователей. Однако при использовании длительных периодов анализа лучше задействовать метод сбора данных на базе System Monitor или с применением утилиты TraceLog. Конечно, файл .etl можно просматривать и посредством утилиты ExMon, но у вас может возникнуть необходимость экспортировать полученные данные в более удобный для чтения или для обработки формат. Для преобразования данных файла регистрации .etl в формат CSV можно применить команду

exmon.exe -SU 

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

Преобразовав данные ExMon в формат CSV, можно с легкостью манипулировать ими с помощью, например, Microsoft Excel. Надо сказать, что для данных ExMon существует целый ряд применений. К примеру, если приходится заменять клиенты Outlook на другие версии, можно регулярно создавать и анализировать CSV-файлы ExMon, чтобы следить за ходом миграции. А если у вас возникли опасения относительно того, что использование Outlook 2003 в режиме Cached Exchange Mode может повлечь за собой увеличение нагрузки на систему Exchange в то или иное время суток (скажем, в утренние часы, когда регистрируется много пользователей), попробуйте в процессе миграции создавать файлы данных CSV, и вы сможете выявить клиентов, максимально нагружающих систему. Если Exchange нагружается слишком сильно, можно будет выявить эту тенденцию еще до того, как ситуация станет критической, и перевести часть пользователей с одного сервера на другой. Даже если вы сейчас не выполняете миграцию, у вас появляется возможность изолировать наиболее активных пользователей и перевести их на отдельные серверы.

Наряду с информацией о клиентах Outlook в числе прочих данных ExMon могут отображаться сведения и о других приложениях. Нужно помнить, что ExMon предоставляет данные обо всех клиентах MAPI, поэтому при просмотре данных ExMon вы увидите информацию от других приложений, использующих интерфейс MAPI в процессе взаимодействия с хранилищами данных Exchange (например, от программ резервного копирования). Как правило, приложения имеют собственные идентификационные данные пользователей. К примеру, на экране 2 показан пользователь QSMDaemon, который совместно с Exchange обеспечивает систему обработки вызовов.

Компания Microsoft позиционирует ExMon как многоцелевую утилиту для исследования производительности и анализа действий клиентов, особо выделяя реализованную в ней возможность сбора данных в течение длительного времени с использованием System Monitor и TraceLog. Надо сказать, что эта возможность не так уж нова, ведь мы уже какое-то время пользуемся Performance Monitor для сбора подобного рода данных на постоянной основе. Но ExMon оперирует специальными счетчиками производительности, которые весьма эффективны при проведении такого рода исследований, но целесообразность их использования ранее была далеко не очевидной для большинства системных администраторов и администраторов Exchange. Тем не менее, я полагаю, главное достоинство утилиты ExMon — ее способность собирать данные с непродолжительными интервалами выборочного наблюдения. Эта функция, позволяющая практически в реальном времени оценивать важнейшие рабочие характеристики соединения пользователя, — отличное подспорье для администратора при проведении диагностики.

Киран Маккорри - Главный консультант подразделения HP Advanced Advanced Technology Group. Имеет звание Microsoft Exchange MVP. Последняя из написанных им книг — Microsoft Exchange Server 2003 Deployment and Migration (издательство Digital Press). kieran.mccorry@hp.com