Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
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 podDriveLetter:\i386\perfc009.da_
DriveLetter:\i386\perfh009.da_
adresem . Zastąp pliki, które znajdują się w folderze%Systemroot%\System32
.Uruchom Edytor rejestru, a następnie znajdź następujący klucz w rejestrze:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib
W rejestrze zmień wartość Last Counter na 1846 (dziesiętną) i zmień wartość ostatniej pomocy na 1847 (dziesiętna).
Znajdź następujący klucz rejestru, aby wyszukać usługi z podkluczem Wydajności :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
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:
Otwórz wiersz polecenia.
W wierszu polecenia wpisz
cd %Systemroot%\System32
, a następnie naciśnij ENTER.W wierszu polecenia wpisz
findstr drivername *.ini
, a następnie naciśnij ENTER.Zanotuj nazwę pliku .ini dla każdej nazwy sterownika na liście.
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, wpiszlodctr axperf.ini
w wierszu polecenia, a następnie naciśnij ENTER.Powtórz krok 5 dla każdego pliku .ini na liście.
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%\System32
lokalizacji . 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.