Перестроение значений библиотеки счетчиков производительности вручную

В этой статье описывается, как вручную перестроить значения библиотеки счетчиков производительности.

Область действия: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер базы знаний: 300956

Важно!

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

При использовании средства системного монитора некоторые счетчики могут отсутствовать или не содержать данные счетчиков. Базовый набор библиотек счетчиков производительности может быть поврежден и может потребоваться перестроить. Кроме того, может потребоваться перестроить любые пользовательские (созданные приложением Microsoft платформа .NET Framework) счетчики или расширяемые счетчики.

Такое поведение может происходить в следующих ситуациях:

  • Некоторые расширяемые счетчики повреют реестр.
  • Некоторые программы на основе инструментария управления Windows (WMI) изменяют реестр.

Перестроение базовых счетчиков производительности

Сведения о расширяемом счетчике хранятся в обоих расположениях:

  • Подраздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009

  • Файл %Systemroot%\System32\Perfc009.dat и %Systemroot%\System32\Perfh009.dat файл.

Чтобы перестроить базовые библиотеки счетчиков производительности вручную, выполните следующие действия.

  1. Разверните файл Perfc009.dat и файл Perfh009.dat . Эти файлы находятся на диске установки Windows. Сжатые файлы находятся по адресу DriveLetter:\i386\perfc009.da_ и по адресу DriveLetter:\i386\perfh009.da_. Замените файлы, которые находятся в %Systemroot%\System32 папке.

  2. Запустите редактор реестра и найдите следующий раздел в реестре:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

  3. В реестре измените значение последнего счетчика на 1846 (десятичное число), а значение последней справки — на 1847 (десятичное).

  4. Найдите следующий раздел реестра, чтобы найти службы с подразделом производительности:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  5. Удалите следующие значения из подраздела производительности (если они существуют):

    • Первый счетчик
    • Первая справка
    • Последний счетчик
    • Последняя справка

    Вы также можете использовать Exctrlst.exe, чтобы найти установленные файлы библиотеки динамической компоновки счетчика производительности. Затем получите доступ к реестру, чтобы удалить значения DWORD. Теперь у вас есть рабочий реестр производительности, содержащий только базовые системные счетчики.

    Примечание.

    Удаление значений из подраздела "Производительность" в реестре может привести к тому, что все установленные платформа .NET Framework приложения не будут работать при следующем запуске. В этом случае используйте команду в lodctr /R разделе "Повторное добавление расширяемых счетчиков", чтобы перестроить счетчики производительности. Если при запуске приложения платформа .NET Framework по-прежнему возникают проблемы, см. раздел "Переустановка пользовательских счетчиков производительности платформа .NET Framework сборки" этой статьи.

Повторное добавление расширяемых счетчиков

Необходимо снова добавить расширяемые счетчики из списка служб. Прежде чем это сделать, необходимо определить .ini, который используется для загрузки счетчиков:

  1. Откройте окно командной строки.

  2. В командной строке введите и cd %Systemroot%\System32нажмите клавишу ВВОД.

  3. В командной строке введите и findstr drivername *.iniнажмите клавишу ВВОД.

  4. Запишите имя .ini для каждого имени драйвера в списке.

  5. В командной строке введите команду lodctr <inifile> и нажмите клавишу ВВОД.

    Примечание.

    В этой команде <inifile> представляет имя файла .ini для драйвера, который требуется перезагрузить.

    Например, если вы хотите перезагрузить драйвер ASP, список, записанный на шаге 4, показывает, что Axperf.ini является .ini для драйвера ASP (axperf.ini:drivername=ASP). Чтобы перезагрузить драйвер ASP, lodctr axperf.ini введите его в командной строке и нажмите клавишу ВВОД.

  6. Повторите шаг 5 для каждого .ini файла в списке.

  7. Restart your computer.

Чтобы перестроить все счетчики производительности, включая расширяемые и сторонние счетчики в Windows Server, введите следующие команды в командной строке. Нажмите клавишу ВВОД после каждой команды.

cd \windows\system32
lodctr /R

Примечание.

  • /R имеет верхний регистр. Для успешного выполнения этой команды на компьютере должны быть права администратора.
  • На компьютере под управлением 32-разрядного выпуска Windows Lodctr /R:<filename> команда является стандартным методом восстановления строк и сведений реестра счетчиков производительности с помощью имени файла.

Windows Server перестраивает все C:\Windows\inf\009 счетчики, так как считывает все .ini файлы в папке для операционной системы на английском языке.

Примечание.

  • Если вы используете продукт кластера или центра обработки данных, необходимо выполнить отработку отказа узла, чтобы обновить список счетчиков. Это необходимо сделать после выполнения действий, описанных в разделе "Повторное добавление расширяемых счетчиков для базовых и расширяемых счетчиков".
  • В системах, где выполняются приложения, которые добавляют собственные счетчики производительности, такие как Exchange или SQL Server, файл .ini, %Systemroot%\System32используемый для загрузки счетчика производительности, может не находиться в . Эти .ini файлы обычно можно найти в структуре папок приложений.
  • Если при выполнении предыдущих действий вы получите сообщение об ошибке о библиотеке производительности, может потребоваться выгрузить и перезагрузить библиотеки динамических ссылок (DLL) производительности IIS.
  • Если при запуске приложения платформа .NET Framework возникают проблемы, см. раздел "Переустановка пользовательских платформа .NET Framework счетчиков производительности сборки".

Переустановка пользовательских платформа .NET Framework счетчиков производительности сборок

Если при запуске приложения платформа .NET Framework после выполнения описанных здесь процедур могут возникнуть проблемы, может потребоваться перестроить счетчики производительности для пользовательского платформа .NET Framework приложения. Для этого используйте параметр в /i средстве платформа .NET Framework установщика (Installutil.exe). Необходимо знать имена файлов DLL, которые создают счетчики производительности.

Если вы выполните эти процедуры и удалите счетчики из реестра для всех служб, установленных в системе, на которой установлен Microsoft System Center Operations Manager 2007, возможно, у вас будет неисправный сервер управления. Счетчики для модулей config Service, SDK и Database Write не предоставляются в виде расширяемых счетчиков в INI-файлах. Вместо этого они регистрируются во время установки. Поэтому при попытке запустить System Center Operations Manager 2007 может появиться сообщение об ошибке, аналогичное следующему примеру, так как счетчики производительности отсутствуют:

Event Type: Error  
Event Source: OpsMgr SDK Service  
Event Category: None  
Event ID: 26380  
Date: date  
Time: time  
User: N/A  
Computer: MOM  
Description: The System Center Operations Manager SDK Service failed due to an unhandled exception.

Чтобы устранить эту проблему в System Center Operations Manager 2007, необходимо переустановить сборки платформа .NET Framework, которые создали счетчики производительности. Для этого используйте параметр /i в средстве установщика платформа .NET Framework (Installutil.exe), чтобы переустановить следующие сборки:

  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

Например, в командной строке введите следующие команды и нажмите клавишу ВВОД после каждой команды:

InstallUtil /i Microsoft.Mom.ConfigService.dll
InstallUtil /i Microsoft.Mom.Sdk.ServiceDataLayer.dll
InstallUtil /i Microsoft.Mom.DatabaseWriteModules.dll
InstallUtil /i Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

Примечание.

Для успешного выполнения этих команд на компьютере должны быть права администратора.