Ricompilare manualmente i valori della libreria dei contatori delle prestazioni

Questo articolo descrive come ricompilare 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 backup e ripristino del Registro di sistema, vedere Backup e ripristino del Registro di sistema in Windows.

Quando si usa lo strumento Monitoraggio di sistema, alcuni contatori potrebbero non essere presenti o non contengono dati dei contatori. Il set di base di librerie dei contatori delle prestazioni potrebbe essere danneggiato e potrebbe essere necessario ricompilare. Potrebbe inoltre essere necessario ricompilare tutti i contatori personalizzati (creati dall'applicazione Microsoft .NET Framework) o i contatori estensibili.

Questo comportamento può verificarsi nelle situazioni seguenti:

  • alcuni contatori estendibili danneggiano il Registro di sistema.
  • alcuni programmi basati su Strumentazione gestione Windows (WMI) modificano il Registro di sistema.

Ricompilare i contatori delle prestazioni di base

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

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

  • File %Systemroot%\System32\Perfc009.dat e file %Systemroot%\System32\Perfh009.dat .

Per ricompilare manualmente le librerie dei contatori delle prestazioni di base, seguire questa procedura:

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

  2. Avviare 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 in 1846 (decimale) e impostare 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 presenti):

    • Primo contatore
    • Prima guida
    • Ultimo contatore
    • Ultima guida

    È anche possibile usare lo strumento Exctrlst.exe per individuare i file di libreria a collegamento dinamico (DLL) del contatore delle prestazioni installati. Accedere quindi al Registro di sistema per rimuovere i valori DWORD. È ora disponibile un registro delle prestazioni funzionante che contiene solo contatori di base di sistema.

    Nota

    La rimozione dei valori dalla sottochiave Prestazioni nel Registro di sistema può causare il mancato funzionamento delle applicazioni .NET Framework installate al successivo avvio. In questo caso, usare il lodctr /R comando nella sezione Aggiungi nuovamente i contatori estensibili per ricompilare i contatori delle prestazioni. Se si continuano a riscontrare problemi quando si avvia un'applicazione .NET Framework, vedere la sezione Reinstallare i contatori delle prestazioni degli assembly .NET Framework personalizzati in questo articolo.

Aggiungere nuovamente i contatori estensibili

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

  1. Aprire una finestra del prompt dei comandi.

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

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

  4. Si noti il nome del file .ini per ogni nome del driver nell'elenco.

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

    Nota

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

    Ad esempio, se si vuole ricaricare il driver ASP, l'elenco annotato 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 ogni .ini file nell'elenco.

  7. Restart your computer.

Per ricompilare tutti i contatori delle prestazioni, inclusi i contatori estensibili 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 nel computer.
  • In un computer che esegue un'edizione a 32 bit di Windows, il Lodctr /R:<filename> comando è il metodo standard per ripristinare le stringhe e le informazioni del Registro di sistema dei contatori delle prestazioni usando un nome file.

Windows Server ricompila 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 data center, è necessario eseguire il failover del nodo per aggiornare l'elenco dei contatori. È necessario eseguire questa operazione dopo aver eseguito i passaggi in Aggiungere nuovamente i contatori estensibili sia per i contatori di base che per i contatori estensibili.
  • Nei sistemi che eseguono applicazioni che aggiungono contatori delle prestazioni, ad esempio Exchange o SQL Server, il file .ini usato per caricare il contatore delle prestazioni potrebbe non trovarsi in %Systemroot%\System32. Questi file .ini sono in genere disponibili nella struttura delle cartelle delle applicazioni.
  • Se viene visualizzato un messaggio di errore relativo alla libreria delle prestazioni quando si usano i passaggi precedenti, potrebbe essere necessario scaricare e ricaricare le DLL (Dynamic Link Libraries) delle prestazioni di IIS.
  • Se si continuano a riscontrare problemi quando si avvia un'applicazione .NET Framework, vedere la sezione Reinstallare i contatori delle prestazioni degli assembly .NET Framework personalizzati .

Reinstallare i contatori delle prestazioni dell'assembly .NET Framework personalizzati

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

Se si seguono queste procedure e si rimuoveno i contatori dal Registro di sistema per tutti i servizi installati in un sistema in cui è installato Microsoft System Center Operations Manager 2007, potrebbe essere presente un server di gestione danneggiato. I contatori per il servizio di configurazione, il servizio SDK e i moduli di scrittura del database non vengono forniti sotto forma di contatori estensibili nei file INI. Vengono invece registrati al momento dell'installazione. Quando si tenta di avviare System Center Operations Manager 2007, è quindi possibile che venga visualizzato un messaggio di errore simile all'esempio seguente perché mancano i contatori delle prestazioni:

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 assembly .NET Framework che hanno creato i contatori delle prestazioni. A tale scopo, usare l'opzione /i nello strumento di installazione di .NET Framework (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 nel computer.