Udostępnij za pośrednictwem


Ręczne ponowne kompilowanie wartości biblioteki licznika wydajności

W tym artykule opisano sposób ręcznego ponownego kompilowania wartości biblioteki licznika wydajności.

Oryginalny numer KB: 300956

Ważne

W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonać poniższe kroki. Aby zapewnić dodatkową ochronę, utwórz kopię zapasową rejestru przed przystąpieniem do jego modyfikacji. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.

W przypadku korzystania z narzędzia Monitor systemu niektóre liczniki mogą brakować lub nie zawierają danych liczników. Podstawowy zestaw bibliotek liczników wydajności może ulec uszkodzeniu i może być konieczne ponowne skompilowane. Ponadto może być konieczne ponowne skompilowanie wszystkich niestandardowych liczników (utworzonych przez aplikację microsoft .NET Framework) lub wszelkich rozszerzalnych liczników.

To zachowanie może wystąpić w następujących sytuacjach:

  • niektóre rozszerzalne liczniki uszkodzone rejestru.
  • niektóre programy oparte na instrumentacji zarządzania Windows (WMI) modyfikują rejestr.

Ponowne kompilowanie podstawowych liczników wydajności

Rozszerzalne informacje licznika są przechowywane w obu następujących lokalizacjach:

  • Podklucz rejestru: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009.

  • Plik %Systemroot%\System32\Perfc009.dat i %Systemroot%\System32\Perfh009.dat plik.

Aby ręcznie ponownie skompilować podstawowe biblioteki liczników wydajności, wykonaj następujące kroki:

  1. Rozwiń plik Perfc009.dat i plik Perfh009.dat. Te pliki znajdują się na dysku instalacyjnym systemu Windows. Po zainstalowaniu pliku dysku instalacyjnego systemu Windows (.wim) przy użyciu poleceń cmdlet programu PowerShell lub za pomocą Dism polecenia , skompresowane pliki znajdują się w lokalizacji i pod DriveLetter:\i386\perfc009.da_DriveLetter:\i386\perfh009.da_adresem . Zastąp pliki, które znajdują się w folderze %Systemroot%\System32 .

  2. Uruchom Edytor rejestru, a następnie znajdź następujący klucz w rejestrze:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

  3. W rejestrze zmień wartość Last Counter na 1846 (dziesiętną) i zmień wartość ostatniej pomocy na 1847 (dziesiętna).

  4. Znajdź następujący klucz rejestru, aby wyszukać usługi z podkluczem Wydajności :
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  5. Usuń następujące wartości z podklucza wydajności (jeśli istnieją):

    • Pierwszy licznik
    • Pierwsza pomoc
    • Ostatni licznik
    • Ostatnia pomoc

    Możesz również użyć narzędzia Exctrlst.exe, aby zlokalizować zainstalowane pliki bibliotek dynamicznego linku do wydajności (DLL). Następnie uzyskaj dostęp do rejestru, aby usunąć wartości DWORD. Masz teraz służbowy rejestr wydajności zawierający tylko liczniki podstawowe systemu.

    Uwaga 16.

    Usunięcie wartości z podklucza Wydajności w rejestrze może spowodować, że wszystkie zainstalowane aplikacje .NET Framework nie będą działać przy następnym uruchomieniu. W takim przypadku użyj lodctr /R polecenia w sekcji Ponowne dodawanie rozszerzalnych liczników, aby ponownie skompilować liczniki wydajności. Jeśli podczas uruchamiania aplikacji .NET Framework nadal występują problemy, zobacz sekcję Ponowne instalowanie niestandardowych liczników wydajności zestawów .NET Framework w tym artykule.

Ponowne dodawanie rozszerzalnych liczników

Należy ponownie dodać rozszerzalne liczniki z listy usług. Przed wykonaniem tej czynności należy zidentyfikować plik .ini używany do ładowania liczników:

  1. Otwórz wiersz polecenia.

  2. W wierszu polecenia wpisz cd %Systemroot%\System32, a następnie naciśnij ENTER.

  3. W wierszu polecenia wpisz findstr drivername *.ini, a następnie naciśnij ENTER.

  4. Zanotuj nazwę pliku .ini dla każdej nazwy sterownika na liście.

  5. W wierszu polecenia wpisz lodctr <inifile> polecenie, a następnie naciśnij ENTER.

    Uwaga 16.

    W tym poleceniu <plik inifile> reprezentuje nazwę pliku .ini dla sterownika, który chcesz ponownie załadować.

    Jeśli na przykład chcesz ponownie załadować sterownik ASP, lista zanotowana w kroku 4 pokazuje, że Axperf.ini jest plikiem .ini dla sterownika ASP (axperf.ini:drivername=ASP). Aby ponownie załadować sterownik ASP, wpisz lodctr axperf.ini w wierszu polecenia, a następnie naciśnij ENTER.

  6. Powtórz krok 5 dla każdego pliku .ini na liście.

  7. Ponownie uruchom komputer.

Aby ponownie skompilować wszystkie liczniki wydajności, w tym rozszerzalne i liczniki innych firm w systemie Windows Server, wpisz następujące polecenia w wierszu polecenia. Naciśnij ENTER po każdym poleceniu.

cd \windows\system32
lodctr /R

Uwaga 16.

  • /R jest wielkimi literami. Aby pomyślnie wykonać to polecenie, musisz mieć uprawnienia administracyjne na komputerze.
  • Na komputerze z 32-bitową wersją systemu Windows Lodctr /R:<filename> polecenie jest standardową metodą przywracania ciągów rejestru licznika wydajności i informacji przy użyciu nazwy pliku.

System Windows Server ponownie kompiluje wszystkie liczniki, ponieważ odczytuje wszystkie pliki .ini w C:\Windows\inf\009 folderze dla angielskiego systemu operacyjnego.

Uwaga 16.

  • Jeśli używasz produktu Klaster lub Centrum danych, musisz przejąć węzeł w tryb failover, aby odświeżyć listę liczników. Należy to zrobić po wykonaniu kroków opisanych w sekcji Ponowne dodawanie rozszerzalnych liczników zarówno dla liczników podstawowych, jak i rozszerzalnych liczników.
  • W systemach z uruchomionymi aplikacjami, które dodają własne liczniki wydajności, takie jak Exchange lub SQL Server, plik .ini używany do ładowania licznika wydajności może nie znajdować się w %Systemroot%\System32lokalizacji . Te pliki .ini można zwykle znaleźć w strukturze folderów aplikacji.
  • Jeśli podczas wykonywania poprzednich kroków zostanie wyświetlony komunikat o błędzie dotyczący biblioteki wydajności, może być konieczne zwolnienie i ponowne załadowanie bibliotek dynamicznych linków wydajności usług IIS (DLL).
  • Jeśli podczas uruchamiania aplikacji .NET Framework nadal występują problemy, zobacz sekcję Ponowne instalowanie niestandardowych liczników wydajności zestawów programu .NET Framework.

Ponowne instalowanie niestandardowych liczników wydajności zestawów programu .NET Framework

Jeśli nadal występują problemy podczas uruchamiania aplikacji .NET Framework po wykonaniu procedur wymienionych w tym miejscu, może być konieczne ponowne skompilowanie liczników wydajności dla niestandardowej aplikacji .NET Framework. W tym celu użyj /i opcji w narzędziu instalatora programu .NET Framework (Installutil.exe). Musisz znać nazwy plików DLL, które tworzą liczniki wydajności.

Jeśli wykonasz te procedury i usuniesz liczniki z rejestru dla wszystkich usług zainstalowanych w systemie z zainstalowanym programem Microsoft System Center Operations Manager 2007, może być uszkodzony serwer zarządzania. Liczniki dla modułów Config Service, SDK Service i Database Write nie są dostępne w postaci rozszerzalnych liczników w plikach INI. Zamiast tego są one rejestrowane w momencie instalacji. Dlatego podczas próby uruchomienia programu System Center Operations Manager 2007 może zostać wyświetlony komunikat o błędzie podobny do poniższego przykładu, ponieważ brakuje liczników wydajności:

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.

Aby rozwiązać ten problem w programie System Center Operations Manager 2007, należy ponownie zainstalować zestawy programu .NET Framework, które utworzyły liczniki wydajności. W tym celu użyj /i opcji w narzędziu instalatora programu .NET Framework (Installutil.exe), aby ponownie zainstalować następujące zestawy:

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

Na przykład w wierszu polecenia wpisz następujące polecenia, a następnie naciśnij ENTER po każdym poleceniu:

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

Uwaga 16.

Aby pomyślnie wykonać te polecenia, musisz mieć uprawnienia administracyjne na komputerze.