Get counter указанные объекты не найдены на этом компьютере
Эта статья помогает решить проблему, при которой некоторые библиотеки счетчиков производительности повреждены и их необходимо перестроить.
Применяется к: Windows Server 2012 R2
Исходный номер КБ: 2554336
Симптомы
При использовании средства Performance Monitor некоторые счетчики могут быть отсутствуют или не содержат встречных данных. Библиотеки счетчиков производительности могут быть повреждены и нуждаются в восстановлении.
В журнале приложений можно увидеть следующие ошибки:
Причина
Такое поведение может произойти, если некоторые стойки развращают реестр или если Windows программ управления (WMI) изменить реестр.
Решение
Чтобы устранить эту проблему, используйте следующие методы.
Убедитесь, что счетчики не отключены в реестре
Счетчики могут быть отключены с помощью параметров реестра. Проверьте следующие расположения реестра, чтобы убедиться, что счетчики не были отключены:
%servicename% представляет любую службу со счетчиком производительности. Например: PerfDisk, PerfOS и т. д.
В любом из этих местоположений могут быть ключи реестра для disablePerformanceCounters. Согласно статье Отключение счетчиков производительности,это значение должно быть установлено до 0. Если значение не превышает 0, счетчик может быть отключен.
- Значение 1 означает отключение счетчика.
- Значение 2 означает отключение 32-битного счетчика.
- Значение 4 означает отключение 64-битного счетчика.
Восстановление всех счетчиков производительности, включая раздвимые и сторонние счетчики
Чтобы восстановить все счетчики производительности, включая дополнительные и сторонние счетчики, введите следующие команды в командной подсказке администрирования. Нажмите КНОПКУ ВВОД после каждой команды.
Resync the counters with Windows Management Instrumentation (WMI):
Остановите и перезапустите службу журналов производительности и оповещений.
Остановите и перезапустите службу Windows управления.
Создайте новый набор сборщиков данных (не используйте существующий набор сборщика данных).
Иногда запуск lodctr /R может не восстановить все счетчики. Если вы заметили это, убедитесь, что файл c:\windows\system32\PerfStringBackup.INI содержит соответствующую информацию. Этот файл можно скопировать с идентичной машины, чтобы восстановить счетчики. В этом файле могут быть небольшие различия между машиной и машиной. Но если вы заметите резкое различие в размерах, может не оказаться сведений. Всегда создайте копию резервного копирования перед заменой. Нет никакой гарантии, что копирование этого файла с другой машины восстановит все счетчики. Если это возможно, сравните файл с резервными копиями компьютера, чтобы узнать, уменьшился ли размер файла в определенный момент времени.
Для многих счетчиков расположение файлов ini для установки счетчиков perf находится под , например, windows\winsxs файлами ini для IIS.
Если вы видите следующие ошибки:
Вам потребуется использовать счетчик установки файлов ini в каталоге c:\Windows\winsxs .
Для счетчиков, которые необходимо отремонтировать, может существовать несколько папок. В этих случаях может потребоваться использовать пробные и ошибки для поиска правильных файлов ini.
Блог творческого ИТ-практика. Возьми свою мысль и дай ей ускорение идеи. В моем фокусе: сети, безопасность, виртуализация, web, мультимедиа.
А А Tuesday, 8 August 2017
Сбор сведений о производительности в Powershell.
Сбор сведений о производительности в Powershell выполняется командлетом Get-Counter.
Далее я цитирую отрывок из замечательной книги Станек Уильям Р. "Windows PowerShell 2.0. Справочник администратора".
get-counter "\\dbserver79\memory\available mbytes"
Timestamp CounterSamples
--------- --------------
2/27/2017 4:26:54 PM \\dbserver79\memory\available mbytes : 1675
Если вам доподлинно неизвестно название того или иного счетчика то его можно подсмотреть здесь
$c = Get-Counter -listset Память
$c.paths
get-counter -listset Память | foreach ($a)
При вызове командлета Get-Credential PowerShell запрашивает у пользователя учетные данные и записывает их в переменную $cred. В дальнейшем эти учетные данные используются для аутентификации на удаленных компьютерах. Чтобы отслеживать все счетчики объекта, введите вместо имени счетчика звездочку (*):
get-counter "\\dbserver79\Memory\*"
В этом примере отслеживаются все счетчики объекта Memory. Если объект существует в нескольких экземплярах, например Processor или LogicalDisk, следует указать нужный экземпляр. В этом случае синтаксис полного пути принимает следующий вид:
\\Компьютер\Объект(Экземпляр)\Счетчик
Экземпляр указывают в скобках после имени объекта производительности. Чтобы наблюдать сразу за всеми экземплярами, введите _Total как имя экземпляра, либо, если требуется определенный экземпляр, укажите его идентификатор. Например, для мониторинга счетчика Processor\% Processor Time у всех процессоров в системе можно использовать команду
get-counter "\\dbserver79\Processor(_Total)\% Processor Time"
либо, для мониторинга определенного процессора:
get-counter "\\dbserver79\Processor(0)\% Processor Time"
Эти команды анализируют данные из расположенного в текущем каталоге файла Data.txt, собранные за сутки между текущим временем сегодняшнего и вчерашнего дня. Чтобы получить список счетчиков, поддерживаемых объектом производительности, введите get-counter -listset, затем имя нужного объекта. Так, например, можно узнать, какие счетчики поддерживает объект производительности Memory:
get-counter -listset Memory
Counter: <\Memory\Page Faults/sec, \Memory\Available Bytes,
\Memory\Committed Bytes, \Memory\Commit Limit. >
CounterSetName : Memory
MachineName : EngPC85
CounterSetType : SingleInstance
Description : The Memory performance object consists of counters
that describe the behavior of physical and virtual memory on the
computer. Physical memory is the amount of random access memory on the
computer. Virtual memory consists of the space in physical memory and
on disk. Many of the memory counters monitor paging, which is the movement
of pages of code and data between disk and physical memory. Excessive
paging, a symptom of a memory shortage, can cause delays which interfere
with all system processes.
Paths: <\Memory\Page Faults/sec, \Memory\Available Bytes,
\Memory\Committed Bytes, \Memory\Commit Limit. >
PathsWithInstances : <>
Как и любые другие команды PowerShell, команды этого примера возвращают объекты, с которыми можно работать. Чтобы получить полный список счетчиков с указанием полного пути к каждому из них, опросить свойство Paths:
$c = get-counter -listset Memory
$c.paths
\Memory\Page Faults/sec
\Memory\Available Bytes
\Memory\Committed Bytes
\Memory\Commit Limit
либо используйте следующую команду:
get-counter -listset memory | foreach ($a)
Получить список счетчиков с учетом экземпляров объектов производительности позволяет свойство PathsWithInstances. Вот как с ним работают:
$d = get-counter -listset PhysicalDisk
$d.pathswithinstances
\PhysicalDisk(0 E: C:)\Current Disk Queue Length
\PhysicalDisk(1 W:)\Current Disk Queue Length
\PhysicalDisk(2 D:)\Current Disk Queue Length
.
\PhysicalDisk(10 Q:)\Current Disk Queue Length
\PhysicalDisk(_Total)\Current Disk Queue Length
Тот же самый результат даст и следующая команда:
get-counter -listset PhysicalDisk | foreach ($a)
Иногда при недостаточной производительности может потребоваться проанализировать ситуацию и отследить использование ресурсов приложениями или системными процессами, чтобы затем увеличить мощность системы в соответствии с возрастающими запросами.
Одним из самых мощных инструментов для обнаружения проблем с производительностью в Windows являются встроенные счетчики производительности (Performance Counters). О них и пойдет речь в этой статье.
Performance Monitor
Основным инструментом для управления счетчиками производительности в Windows является оснастка Монитор производительности (Performance Monitor), в более ранних версиях Windows известная как Системный монитор. Performance Monitor имеет несколько режимов отображения и позволяет выводить показания счетчиков производительности в режиме реального времени, а также сохранять данные в лог-файлы для последующего изучения.
Найти Performance Monitor можно в меню Пуск (стартовый экран в Server 2012) в разделе Administrative tools, либо нажав Win+R и в окне «Run» выполнить команду perfmon.msc. Стоит иметь в виду, что не все пользователи имеют права на использование этой оснастки. Кроме членов группы Administrators, которые имеют полные права и могут пользоваться всеми ее возможностями, есть еще две группы:
Ну а обычные пользователи, входящие в группу Users, могут только открывать лог-файлы для просмотра в мониторе производительности.
Важно. В соответствием с требованием инструментария управления Windows (WMI) группе Performance Log Users необходимо предоставить право входа в систему в качестве пакетного задания. Для этого надо открыть оснастку локальной политики безопасности (secpol.msc), в разделе «Local policies\User Rights Assignment» найти параметр Log on as batch job и добавить в список группу Performance Log Users.
Добавление счетчиков
Итак, первое что мы делаем, открыв Performance Monitor, это добавляем в окно мониторинга необходимые нам счетчики. По умолчанию в окне уже отображается один счетчик, показывающий общую загрузку процессора. Удалить ненужный счетчик можно, выделив его и нажав на красный крестик на панели инструментов, либо клавишей Delete. Для добавления счетчиков жмем зеленую кнопку либо Ctrl+N.
Открывается окно добавления счетчиков. В поле «Select counters from computer» задаем имя или IP-адрес компьютера, за которым будет вестись наблюдение. Кстати, Performance Monitor может отображать в одном окне счетчики с разных компьютеров.
Затем выбираем счетчики производительности из списка. Все счетчики объединены в группы, как правило содержащие в своем названии имя объекта производительности. Например, для мониторинга сетевой активности открываем группу Network Interface и выбираем счетчики, показывающие объем получаемого и передаваемого сетевого трафика, общий объем трафика и текущую пропускную способность.
Если вы сомневаетесь в назначении какого либо счетчика, то есть возможность посмотреть его описание. Для этого надо отметить чекбокс «Show description» в левом нижнем углу. Описание не очень подробное, но достаточно информативное.
Примечание. Количество счетчиков производительности довольно велико и зависит от версии операционной системы и установленых серверных ролей и компонентов. Так, например, в Windows Server 2012 добавлено большое количество счетчиков, предназначеных для мониторинга виртуальных машин. Кроме того, некоторые серверные продукты, такие как Exchange или SQL Server добавляют в систему собственные счетчики.
Выбрав объект мониторинга и выделив нужные счетчики, в поле «Instances of selected оbject» выбираем экземпляр (Instance) объекта. Так выбрав в качестве объекта сетевые интерфейсы, здесь мы указываем, за каким именно необходимо наблюдать. Можно выбрать один или несколько экземпляров, выбрав All Instance мы выведем данные для каждого экземпляра отдельно , а значение _Total выведет усредненное значение по всем экземплярам объекта.
Далее кнопкой «Add»добавляем выбранные счетчики в окно справа и сохраняем изменения кнопкой OK.
Вот так выглядит окно монитора производительности после добавления счетчиков. По умолчанию значения счетчиков производительности выводятся в виде линейного графика. Выбрав конкретный счетчик, можно посмотреть в панели текущее (last), минимальное (minimum), максимальное (maximum) и среднее (average) значения за указанный период времени.
Если одновременно используется большое число счетчиков, то следить за каждым из них может быть затруднительно. Поэтому при необходимости лишние счетчики лучше скрыть, для чего достаточно снять флажок в столбце Show.
Нажав соответствующую кнопку на панели инструментов, можно выбрать режим отображения в виде гистограммы (Histogram bar) или в виде отчета (Report). Также между режимами можно переключаться сочетанием клавиш Ctrl+G.
Так например, если необходимо постоянно отслеживать текущие значения счетчиков, то режим отчета более нагляден.
Как вариант, можно выделить конкретный счетчик, так чтобы он отражался более жирной линией. Для этого выбираем нужный счетчик и жмем на кнопку Highlight, расположенную в панели инструментов. Также для выделения можно воспользоваться сочетанием клавиш Ctrl+H.
Настройка Performance Monitor
Performance Monitor имеет множество настроек, предназначенных для наилучшего отображения данных. Открыть диалоговое окно настроек монитора производительности можно, кликнув на нем правой клавишей мышки и выбрав пункт Properties, либо нажав на неприметную кнопку в панели инструментов, либо нажав Ctrl+Q.
На вкладке General можно:
На вкладке Source (Источник) мы указываем, откуда брать данные:
На вкладке Graph изменяем отображение графика:
Ну и на вкладке Appearance настраивается цветовое оформление и используемый шрифт.
Сохранение данных о производительности
Иногда может потребоваться сохранить полученные данные, например для предоставления отчета или для проведения дальнейшего анализа. Performance Monitor позволяет экспортировать полученные данные в файл. Для экспорта надо кликнуть правой клавишей мыши в окне и в открывшемся меню выбрать пункт «Save Settings As». По умолчанию отчет сохраняется в формате HTML, и его можно открыть в любом браузере.
Вот так выглядит в браузере HTML-отчет. В нем сохранены все параметры монитора производительности, включая тип отображения, заголовки и т.п.
PowerShell
Значения счетчиков производительности можно посмотреть и из консоли PowerShell, где для этого есть специальный командлет Get-Counter . Хотя PowerShell имеет гораздо меньше возможностей для отображения счетчиков производительности, чем Performance Monitor, но зато может использоваться в режиме установки Server Core, при полном отсутствии графического интерфейса.
Предположим, мы хотим с его помощью посмотреть загрузку процессора. Сначала выведем все доступные счетчики для процессора:
(Get-Counter -ListSet Processor).counter
Затем выбираем нужный и выводим его значение:
Get-Counter -Counter ″\Processor(_total)\% Processor Time″ -SampleInterval 10 -MaxSamples 2
Заключение
Итак, сегодня мы рассмотрели некоторые способы использования счетчиков производительности для мониторинга серверов в режиме реального времени. В следующей статье речь пойдет о настройке групп сборщиков данных, сохранении данных в файлы журналов и последующем их анализе, а также о настройке уведомлений.
Как быстро оценить текущее количество подключений пользователей к сайтам на веб сервере IIS, работающем на Windows Server? Подобная информация позволит точнее оценить и спрогнозировать нагрузку на сервер, выбрать оптимальное время для проведения обслуживания и обновления сайта, спрогнозировать нагрузку на сервер при увеличении количества пользователей.
Проще всего определить количество активных сессией пользователей на веб сайте IIS при помощи счетчиков производительности в мониторе производительности Windows (Performance Monitor).
Откройте консоль Performance Monitor, выполнив команду perfmon и перейдите в консоль монитора производительности (Monitoring Tools —> Performance Monitor).
В списке доступных категорий счетчиков найдем и развернем группу Web Service. В этой категории нас интересуют три счетчика:
- CurrentAnonymousUsers – количество анонимных пользователей IIS;
- CurrentNon-AnonymousUsers – количество авторизованных (неанонимных) пользователей IIS;
- CurrentConnections – общее число активных подключений на сервере IIS.
Выберем нужный счетчик и в поле экземпляров счетчика (Instances of selected objects) выберем один или несколько сайтов IIS, для которых нужно отобразить информацию о подключениях. Информация по пользователям всех сайтов на сервере содержится в экземпляре _Total. Осталось нажать кнопку Add >>, чтобы нужный счетчик переместился в список добавляемых счетчиков в правом окне.
Точно так же добавим все необходимые счетчики и нажмем ОК.
Теперь в консоли Performance Monitor в режиме реального времени будет отображаться информация о количестве активных подключений (сессий) пользователей на веб сервере/сайте IIS (по умолчанию значения счетчиков выводятся в виде линейных графиков). Выбрав в нижней панели любой из счетчиков можно посмотреть его текущее (last), среднее (average), минимальное (minimum) и максимальное (maximum) значение за данный период времени.
В текущую консоль можно добавить собственные счетчики производительности и сохранить их в отдельном представлении, которое в дальнейшем можно использовать для быстрого доступа к информации о нагрузке на веб-сервер.
Доступ к данным счетчиков производительности для сайтов IIS можно получить и из PowerShell. Для этого достаточно использовать командлет получения данных из счетчика производительности Get-Counter.
Список всех доступных счетчиков производительности для службы Web Service можно вывести так:
Чтобы получить информацию о текущем количестве активных подключений на сервере IIS (счетчик \Web Service(*)\Current Connections) воспользуйтесь такой командой:
Get-Counter -Counter “\Web Service(*)\Current Connections”
Как вы видите, данная команда вернула как суммарное количество подключений к серверу IIS, так и статистику для каждого из сайтов.
- Значения нескольких счетчиков можно вывести, указав их через запятую;
- С ключем –Continuous информация о значении счетчика будет выводится в консоль постоянно, пока не будет выполнено прерывание командой CTRL+C.
Как мы уже говорили, можно получить количество активных сессии для конкретного сайта IIS. Например, чтобы получить текущее количество соединений на сайте с именем Site1, выполните команду (вы можете указать имя сервера, на котором проверяется значение счетчика, при проверке количества подключений на сайте локально, указывать localhost недопустимо):
Get-Counter "web service(Site1)\current connections" -ComputerName web-app01
Чтобы не указывать каждый раз имя сервера, можно использовать переменную окружения COMPUTERNAME
Get-Counter "web service(Site1)\current connections" -ComputerName $env:COMPUTERNAME
Для получения числового значения счетчика «current connections» всего веб-сервера IIS (суммарная нагрузка на IIS) можно использовать такой код:
((Get-Counter -Counter 'web service(_total)\current connections' -computer $env:COMPUTERNAME) | Select-Object -Expand countersamples).Cookedvalue
Попробуем с помощью простого скрипта создать несколько дополнительных сессии с нашим сайтом и проверить значение счетчика. Можно накрутить количество обращений к IIS с помощью с помощью командлета Invoke-WebRequest, а можно просто открыть несколько окон (отдельных процессов) в браузере:
$counter = 20
for($i=1;$i -le $counter;$i++)$SiteAdress = "http://localhost:9666/"
Start-Process $SiteAdress
>
После этого проверьте значение счетчика current connections и убедитесь, что он увеличиться.
Если на сервере запушено несколько сайтов IIS, и нужно получить количество подключений к каждому из них в табличном виде, можно воспользоваться таким скриптом (для получения данных из IIS в PowerShell нужно загрузить модуль WebAdministration):
import-module webadministration
function get-CurrentConnection($Site) Get-Counter "web service($Site)\current connections,web service($Site)\ Bytes Received/sec,web service($Site)\Bytes Sent/sec" -ComputerName $env:COMPUTERNAME
>
$IISsites = dir IIS:\Sites | Select Name
$CurrentConnection = @()
foreach ($site in $IISsites)
Write-Host $site
$ConnCount = New-Object psobject | get-CurrentConnection -Site $site.name
$CurrentConnection += $ConnCount
>
$CurrentConnection|out-gridview
Также вы можете вывести числовые значения счетчиков подключений по всем сайтам так (первое значение – суммарное количество подключений к IIS):
Get-wmiObject -class Win32_PerfRawData_W3SVC_WebService | select-object -expand currentconnections
Итак, мы рассмотрели методику, позволяющую получить информацию о нагрузке на сайты, запущенные на веб сервере IIS.
Читайте также: