Модернизация приложений

Часть 2

Алексей Федоров

Утилита Resource Monitor

Использование Windows PowerShell

Получение сведений о системе

Доступ к реестру

Доступ к счетчикам производительности

Доступ к системному журналу

Доступ к WMI

 

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

Утилита Resource Monitor

Утилита Resource Monitor (%windir%\System32\Perfom.exe /res) служит для того, чтобы в реальном времени осуществлять мониторинг использования ключевых ресурсов системы — процессора, диска, памяти и сетевых соединений (рис. 1). Утилиту Resource Monitor можно, например, применять для анализа влияния работы приложений на производительность компьютера. Анализ можно проводить как в реальном времени, так и посредством сбора данных из журнала для последующей обработки.

 

Рисунок

Рис. 1. Утилита Resource Monitor: главный экран

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

На начальной странице монитора производительности отображаются основные характеристики применения и производительности процессора, диска, ресурсов памяти в режиме реального времени. Более подробные сведения, включая информацию об использовании ресурсов отдельными процессами, доступны при развертывании разделов по соответствующим ресурсам.

Монитор производительности визуально отображает встроенные счетчики производительности Windows в реальном времени или в режиме просмотра предыдущих дат. Для добавления счетчиков производительности можно просто перетащить необходимый счетчик в окно монитора производительности, а можно создать пользовательскую группу сборщиков данных. Монитор производительности поддерживает несколько графических представлений, позволяющих визуально оценить данные журналов производительности. Можно также создавать пользовательские представления монитора производительности и экспортировать их в виде групп сборщиков данных для применения с функциями производительности и регистрации.

Монитор стабильности предоставляет общие сведения о стабильности системы, а также анализ тенденций с подробной информацией об отдельных событиях, которые могут повлиять на общую стабильность системы (таких как установка программного обеспечения, обновления операционной системы и аппаратные сбои). Сбор данных начинается во время установки системы.

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

Группы сборщиков данных — важное нововведение в данной версии монитора производительности и стабильности Windows, позволяющее объединять сборщики данных в группы с возможностью многократного использования различными сценариями контроля над производительностью системы. После сохранения набора сборщиков данных в виде группы сборщиков данных выполнение различных операций (например, планирования) для всего набора сводится к одному изменению свойств группы.

В монитор производительности и стабильности Windows также включены исходные шаблоны групп сборщиков данных, позволяющие системным администраторам немедленно начать сбор данных производительности в соответствии с ролью сервера или выбранным сценарием отслеживания.

Кратко рассмотрим типы данных, предоставляемые для каждого типа ресурсов, отслеживаемых монитором производительности.

В разделе CPU (Процессор) отображаются данные об утилизации процессора (процессоров). Зеленым цветом в заголовке отображается общий процент применяемых в данный момент ресурсов процессора, а синим — максимальная частота процессора (табл. 1).

Меню, вызываемое нажатием правой кнопки мыши, позволяет завершить работу процесса, проанализировать цепочку вызовов (Analyze Wait Chain) — это новая функция, появившаяся в Windows 7, которая позволяет изучить зависший процесс, приостановить процесс и найти дополнительную информацию о процессе в Интернете.

Переход на вкладку CPU дает возможность получить более детальную информацию об утилизации процессора. Здесь отображаются загруженные в систему сервисы, а также ссылки и модули, принадлежащие выбранным процессам. На графике в правой части экрана в реальном времени отображаются загрузка каждого из процессоров, установленных в системе.

В разделе Disk (Диск) отображаются данные об утилизации дискового ресурса. Зеленым цветом в заголовке отображается полный текущий ввод-вывод, а синим — процент времени максимальной активности (табл. 2).

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

В разделе Memory (Память) отображаются данные об использовании памяти компьютера. Зеленым цветом в заголовке отображается текущее число ошибок чтения страниц с диска в секунду, а синим — процент использования физической памяти (табл. 3).

На вкладке Memory отображается карта применения памяти, позволяющая получить более наглядное (по сравнению с данными об утилизации памяти в Task Manager) представление о занятой/свободной памяти в системе.

Отметим, что при переключении на вкладку Memory график в правой части экрана будет отображать в реальном времени использованную физическую память, выделенную память и ошибки страниц. (рис. 2).

 

Рисунок

Рис. 2. Утилита Resource Monitor: утилизация памяти в системе

Использование Windows PowerShell

Для доступа к отдельным элементам системы — счетчикам производительности, системному журналу, WMI и т.п. — могут служить возможности, предоставляемые Windows PowerShell. Обсуждение всех возможностей этого мощного расширения командной строки заслуживает отдельной публикации; здесь же мы рассмотрим лишь некоторые вопросы, связанные с доступом к ряду элементов системы.

Получение сведений о системе

Рассмотрим некоторые возможности PowerShell по предоставлению данных о системе. Начнем с процессов. Для получения списка процессов, запущенных в системе, используется команда Get-Process (рис. 3).

 

Рисунок

Рис. 3. Данные о процессах

Опция –module позволяет получить список модулей, загруженных указанным процессом (рис. 4). Например, команда:

 

Рисунок

Рис. 4. Список модулей, загруженных указанным процессом

PS>Get-Process explorer –module

покажет список модулей, загруженных приложением explorer.exe.

Используя команду Get-Member, можно получить список свойств для любого объекта PowerShell (рис. 5). В нашем случае для объекта, описывающего процесс, доступен большой набор свойств, многие из которых не отображаются при простом вызове команды Get-Process

 

Рисунок.

Рис. 5. Список свойств процесса

Использование команд Sort-Object, Group, Where и т.п. позволит получить различные среды данных о загруженных процессах.

Для получения списка сервисов, загруженных в системе, используется команда Get-Service, отображающая название сервиса, его описание и статус — запущен или остановлен (рис. 6).

 

Рисунок

Рис. 6. Список сервисов

Для получения списка только запущенных сервисов следует выполнить команду

PS>Get-Service | Where-Object {$_.Status –eq “Running”}

а для получения списка сервисов, у которых есть зависимые сервисы, — команду

PS>Get-Service | Where-Object {$_.DependentServices} | Format-List –property Name, DependentServices, @{Label=”NoOfDependentServices”; Expression= {$_.dependentservices.count}}

Первая команда с помощью команды Get-Service получает список сервисов на компьютере и с помощью оператора конвейера (|) передает список команде Where-Object, которая выбирает сервисы, значение свойства DependentServices которых отлично от null. Следующий оператор конвейера передает результаты команде Format-List. Параметр используется в команде для отображения имени сервиса, имен зависимых сервисов и значений вычисляемого свойства, определяющих число зависимых сервисов.

Для осуществления обратной операции — получения списка сервисов, требуемых для данного сервиса (рис. 7) , — требуется выполнить команду

 

Рисунок

Рис. 7. Получение списка сервисов, требуемых для данного сервиса

PS>Get-Service winrm –requiredServices

Следующая команда может быть полезна, например, для определения причин несовместимости приложений или для унификации программной платформы перед непосредственной установкой прикладного программного обеспечения. Команда Get-HotFix позволяет получить список обновлений ОС, установленных на указанном компьютере (рис. 8).

 

Рисунок

Рис. 8. Список пакетов обновлений

Для получения списка точек восстановления на указанном компьютере используется команда Get-ComputerRestorePoint (рис. 9).

 

Рисунок

Рис. 9. Список точек восстановления

Аналог системной команды ICACLS — это команда Get-Acl, которая возвращает дескриптор безопасности для файлов и разделов реестра. Дескриптор безопасности содержит списки управления доступом (ACL) для указанного ресурса — списки ACL включают разрешения, необходимые пользователям и группам пользователей для доступа к данному ресурсу (рис. 10)

 

Рисунок

Рис. 10. Список ACL для объекта

И еще несколько полезных команд. Команда Get-AuthenticodeSignature позволяет получить сведения о подписи Microsoft Authenticode в файле — это может быть полезно для проверки подписанных файлов, перед выполнением «сомнительных» приложений и т.п. (рис. 11).

 

Рисунок

Рис. 11. Данные о цифровом сертификате приложения

Для получения текущего значения культуры, установленной в операционной системе, применяется команда Get-Culture, а для получения текущих параметров культуры пользовательского интерфейса операционной системы — команда Get-UICulture.

Доступ к реестру

При выполнении различных настроек и попытках обнаружения каких­либо параметров нам часто приходится обращаться к системному реестру в поисках ключей, значений и т.п. С помощью функции PowerShell эта задача может быть решена более простым, по сравнению с использованием утилит RegEdit или Reg, способом.

Первым шагом в нашем примере будет применение алиаса sl (команда Set-Location) для изменения местоположения по умолчанию с файловой системы на реестр и ветвь HKEY_CURRENT_USER:

PS>sl hkcu:

Обратим внимание на то, что приглашение PowerShell изменилось — теперь вместо файловой системы мы работаем с реестром:

PS HKCU:\>

Команда Dir (или Get-ChildItem) покажет нам основные ветви в данном разделе реестра (рис. 12).

 

Рисунок

Рис. 12. Список основных ветвей реестра

Команда

PS HKCU:\>cd software/icrosoft/windows/dwm

перенесет нас в интересующий раздел реестра. Команда Get-ItemProperty позволяет получить данные о записях в ветви реестра (рис. 13).

 

Рисунок

Рис. 13. Данные о записях в ветви реестра

Использование логических операторов If, Then и Else позволит определить текущее значение записи, а команды Set-Item и Set-ItemProperty — изменить ее значение.

Доступ к счетчикам производительности

Для доступа к счетчикам производительности в PowerShell есть следующие команды: Get-Counter, которая возвращает данные из указанного счетчика в режиме реального времени, Import-Counter, которая импортирует счетчики производительности в файл указанного формата и Export-Counter, предназначенная для экспорта значений счетчиков из файла.

Вызов команды без указания параметров приводит к выводу базовых счетчиков, показывающих производительность процессора, памяти, диска и сетевой карты (рис. 14).

 

Рисунок

Рис. 14. Содержимое базовых счетчиков

Команда

PS>Get-Counter –ListSet *

выведет список всех счетчиков, установленных в системе с их описанием и полным путем. Для получения списка всех счетчиков в алфавитном порядке следует использовать команду

PS>Get-Counter –ListSet * | Sort-Object countersetname | format-table countersetname

Команда

PS>Get-Counter –Counter “\Processor(_Total)\% Processor Time” -SampleInterval 2 –MaxSamples 10

возвращает текущие суммарные значения счетчика «% Processor Time» для всех процессоров на локальном компьютере. Сбор данных выполняется каждые две секунды, пока не будут получены десять значений.

Для получения пути счетчиков производительности в наборе счетчиков «Memory» на локальном компьютере используется команда

PS> (get-counter –listset memory).paths

Доступ к системному журналу

Команда Get-EventLog отображает события, занесенные в системный журнал, а команда Show-EventLog вызывает Event Viewer для просмотра содержимого системного журнала.

С помощью команды

PS>Get-EventLog –List

можно получить список основных записей в системном журнале (рис. 15).

 

Рисунок

Рис. 15. Список основных записей в системном журнале

Команда

PS>Get-EventLog –Newest 10 –LogName Application

отображает десять последних записей в журнале событий Application. Для получения определенных событий, например «Ошибка», можно использовать следующую команду:

PS>Get-EventLog –LogName System –EntryType Error

А группа команд

C:\PS>$May31 = get-date 5/31/09

C:\PS>$July1 = get-date 7/01/09

C:\PS>get-eventlog –log “Windows PowerShell” –entrytype Error –after $may31 –before $july1

отображает события, произошедшие в июне 2009 года.

Доступ к WMI

Подсистема Windows Management Instrumentation (WMI) хранит огромное количество данных — от конфигурации компьютера до характеристик отдельных компонентов операционной системы. Команда Get-WmiObject возвращает информацию, представленную указанным WMI-классом. Чтобы получить список всех WMI-классов, доступных на компьютере (рис. 16), выполните команду

 

Рисунок

Рис. 16. Список доступных WMI-классов

PS>Get-WmiObject –list

Тематика использования WMI-классов достаточно обширна, поэтому приведем несколько примеров, которые помогут получить представление о данных, содержащихся в них:

  • получение данных о системе — Get-WMIObject Win32_ComputerSystem;
  • получение данных об операционной системе — Get-WMIObject Win32_OperatingSystem;
  • информация о процессоре — Get-WMIObject Win32_Processor;
  • информация о процессах — Get-WMIObject Win32_Process;
  • информация о конфигурации загрузчика — Get-WMIObject Win32_BootConfiguration;
  • информация о настройках сетевого адаптера — Get-WMIObject Win32_NetworkAdapterConfiguration.

 

В следующей статье данного цикла мы завершим обзор утилит Windows.

 

В начало В начало

КомпьютерПресс 11'2010


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует