Ricreare manualmente i valori della libreria dei contatori delle prestazioni

In questo articolo viene descritto come ricreare manualmente i valori della libreria dei contatori delle prestazioni.

Si applica a:   Windows 10 - tutte le edizioni, Windows Server 2012 R2
Numero KB originale:   300956

Importante

In questa sezione, metodo o attività viene illustrata la procedura per modificare il Registro di sistema. Poiché l'errata modifica del Registro di sistema può causare seri problemi, Di conseguenza, attenersi scrupolosamente alla procedura indicata. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. In questo modo sarà possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e il ripristino del Registro di sistema, vedere Come eseguire il backup e il ripristino del Registro di sistema in Windows.

Quando si utilizza lo strumento Monitor di sistema, alcuni contatori potrebbero risultare mancanti o non contenere dati dei contatori. Il set di base delle librerie dei contatori delle prestazioni potrebbe essere danneggiato e potrebbe essere necessario ricompilare. Inoltre, potrebbe essere necessario ricreare eventuali contatori personalizzati (creati dall'.NET Framework Microsoft) o eventuali contatori estendibili.

Questo comportamento può verificarsi nelle situazioni seguenti:

  • alcuni contatori estensibili danneggiano il Registro di sistema.
  • alcuni Windows di Strumentazione gestione Windows (WMI) modificano il Registro di sistema.

Ricreare i contatori delle prestazioni di base

Le informazioni sui contatori estendibili vengono archiviate in entrambe le posizioni seguenti:

  • La sottochiave del Registro di sistema: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009 .

  • Il %Systemroot%\System32\Perfc009.dat file e il %Systemroot%\System32\Perfh009.dat file.

Per ricreare manualmente le librerie dei contatori delle prestazioni di base, attenersi alla seguente procedura:

  1. Espandere il file Perfc009.dat e il file Perfh009.dat. Questi file si trovano nel disco Windows di installazione. I file compressi si trovano in DriveLetter:\i386\perfc009.da_ e DriveLetter:\i386\perfh009.da_ in . Sostituire i file presenti nella %Systemroot%\System32 cartella.

  2. Avviare l'Editor del Registro di sistema e quindi individuare la chiave seguente nel Registro di sistema:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

  3. Nel Registro di sistema modificare il valore Last Counter su 1846 (decimale) e il valore Last Help su 1847 (decimale).

  4. Individuare la chiave del Registro di sistema seguente per cercare i servizi con una sottochiave Prestazioni:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  5. Rimuovere i valori seguenti dalla sottochiave Performance (se presente):

    • Primo contatore
    • First Help
    • Ultimo contatore
    • Ultima Guida

    È inoltre possibile utilizzare lo strumento Exctrlst.exe per individuare i file di libreria a collegamento dinamico (DLL) dei contatori delle prestazioni installati. Accedere quindi al Registro di sistema per rimuovere i valori DWORD. Ora si dispone di un Registro di sistema delle prestazioni utilizzabile che contiene solo i contatori di base del sistema.

    Nota

    Se si rimuovono i valori dalla sottochiave Performance nel Registro di sistema, le applicazioni .NET Framework potrebbero non funzionare al successivo avvio. In questo caso, utilizzare il comando nella sezione Aggiungere di nuovo i contatori lodctr /R estendibili per ricreare i contatori delle prestazioni. Se si verificano ancora problemi quando si avvia un'applicazione .NET Framework, vedere la sezione Reinstallazione dei contatori delle prestazioni .NET Framework assembly personalizzati in questo articolo.

Aggiungere di nuovo i contatori estendibili

È necessario aggiungere di nuovo i contatori estendibili dall'elenco dei servizi. Prima di eseguire questa operazione, è necessario identificare il file .ini utilizzato per caricare i contatori:

  1. Aprire una finestra del prompt dei comandi.

  2. Al prompt dei comandi digitare cd %Systemroot%\System32 e quindi premere INVIO.

  3. Al prompt dei comandi digitare findstr drivername *.ini e quindi premere INVIO.

  4. Prendere nota del nome del file .ini per ogni nome di driver nell'elenco.

  5. Al prompt dei comandi digitare il lodctr <inifile> comando e quindi premere INVIO.

    Nota

    In questo comando rappresenta il nome del file .ini del <inifile> driver che si desidera ricaricare.

    Ad esempio, se si desidera ricaricare il driver ASP, l'elenco indicato nel passaggio 4 mostra che Axperf.ini è il file .ini per il driver ASP ( axperf.ini:drivername=ASP ). Per ricaricare il driver ASP, digitare lodctr axperf.ini al prompt dei comandi e quindi premere INVIO.

  6. Ripetere il passaggio 5 per .ini file nell'elenco.

  7. Restart your computer.

Per ricreare tutti i contatori delle prestazioni inclusi i contatori estendibili e di terze parti in Windows Server, digitare i comandi seguenti al prompt dei comandi. Premere INVIO dopo ogni comando.

cd\windows\system32
lodctr /R

Nota

  • /R è maiuscolo. Per eseguire correttamente questo comando, è necessario disporre dei diritti amministrativi sul computer.
  • In un computer che esegue un'edizione a 32 bit di Windows, il comando è il metodo standard per ripristinare le informazioni e le stringhe del Registro di sistema dei contatori delle prestazioni utilizzando un Lodctr /R:<filename> nome di file.

Windows Server ricrea tutti i contatori perché legge tutti i file .ini nella C:\Windows\inf\009 cartella per il sistema operativo inglese.

Nota

  • Se si esegue un prodotto Cluster o Datacenter, è necessario eseguire il failover del nodo per aggiornare l'elenco dei contatori. È necessario eseguire questa operazione dopo aver eseguito la procedura descritta in Aggiungere di nuovo i contatori estendibili sia per i contatori di base che per i contatori estendibili.
  • Nei sistemi che eseguono applicazioni che aggiungono contatori delle prestazioni propri, ad esempio Exchange o SQL Server, il file .ini utilizzato per caricare il contatore delle prestazioni potrebbe non trovarsi in %Systemroot%\System32 . Questi .ini file sono in genere disponibili nella struttura di cartelle delle applicazioni.
  • Se viene visualizzato un messaggio di errore relativo alla libreria delle prestazioni quando si utilizzano i passaggi precedenti, potrebbe essere necessario scaricare e ricaricare le DLL (Dynamic Link Library) delle prestazioni di IIS.
  • Se si verificano problemi quando si avvia un'applicazione .NET Framework, vedere la sezione Reinstallazione dei contatori delle prestazioni .NET Framework assembly personalizzati.

Reinstallare i contatori delle prestazioni .NET Framework assembly personalizzati

Se si continuano a verificarsi problemi quando si avvia un'applicazione .NET Framework dopo aver eseguito le procedure elencate di seguito, potrebbe essere necessario ricreare i contatori delle prestazioni per l'applicazione .NET Framework personalizzata. A tale scopo, utilizzare /i l'opzione nello .NET Framework Installer Tool (Installutil.exe). È necessario conoscere i nomi dei file DLL che creano i contatori delle prestazioni.

Se si seguono queste procedure e si rimuovono i contatori dal Registro di sistema per tutti i servizi installati in un sistema in cui è installato Microsoft System Center Operations Manager 2007, è possibile che il server di gestione sia danneggiato. I contatori per i moduli Config Service, SDK Service e Database Write non sono disponibili sotto forma di contatori estendibili nei file INI. Vengono invece registrati al momento dell'installazione. Pertanto, quando si tenta di avviare System Center Operations Manager 2007, è possibile che venga visualizzato un messaggio di errore simile all'esempio seguente perché i contatori delle prestazioni sono mancanti:

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.

Per risolvere questo problema in System Center Operations Manager 2007, è necessario reinstallare gli .NET Framework che hanno creato i contatori delle prestazioni. A tale scopo, utilizzare l'opzione /i nello .NET Framework Installer Tool (Installutil.exe) per reinstallare gli assembly seguenti:

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

Ad esempio, al prompt dei comandi digitare i comandi seguenti e quindi premere INVIO dopo ogni comando:

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

Nota

Per eseguire correttamente questi comandi, è necessario disporre dei diritti amministrativi sul computer.