Risoluzione avanzata dei problemi relativi al blocco di Windows

Questo articolo descrive come risolvere i problemi di blocco nei computer e nei server basati su Windows. Fornisce anche metodi per la raccolta di dati che consentono agli amministratori o agli sviluppatori di software di diagnosticare, identificare e risolvere questi problemi.

Nota

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Si applica a: Windows 10

Identificare il problema

  • Quale computer si blocca? Ad esempio, il computer interessato è un server fisico o un server virtuale.
  • Quale operazione è avvenuta quando si è bloccata? Ad esempio, questo problema si verifica quando si arresta.
  • Con quale frequenza si verificano gli errori? Ad esempio, questo problema si verifica ogni sera alle 19:00.
  • Su quanti computer si verifica questo blocco? Ad esempio, tutti i computer o un solo computer.

Risolvere i problemi di blocco

Per risolvere i problemi di blocco, controllare lo stato corrente del computer e seguire uno dei metodi seguenti.

Per il computer che è ancora in esecuzione in uno stato bloccato

Se il computer fisico o la macchina virtuale continua a bloccarsi, usare uno o più dei metodi seguenti per la risoluzione dei problemi:

  • Provare ad accedere al computer tramite una connessione desktop remoto.
  • Usare un account di dominio o un account amministratore locale per accedere al computer con la soluzione di accesso remoto del produttore dell'hardware. Ad esempio, Dell Remote Access Card (DRAC), HP Integrated Lights-Out (iLo) o IBM Remote Supervisor Adapter (RSA).
  • Testare il ping nel computer. Cercare pacchetti eliminati e latenza di rete elevata.
  • Accedere alle condivisioni amministrative, ad esempio \\NomeServer\c$.
  • Premere CTRL+ALT+CANC e controllare la risposta.
  • Provare a usare gli strumenti di amministrazione remota di Windows. Ad esempio, Gestione computer, Server Manager e Wmimgmt.msc.

Per il computer che non è più bloccato

Se il computer fisico o la macchina virtuale si è bloccato, ma ora è in esecuzione in uno stato corretto, usare uno o più dei metodi seguenti per la risoluzione dei problemi.

Per un computer fisico

  • Esaminare i log di sistema e dell'applicazione dal computer in cui si verifica il problema. Controllare i registri eventi per l'ID evento pertinente:

    • Registro eventi dell'applicazione: errore dell'applicazione, che suggerisce un arresto anomalo o un processo di sistema pertinente
    • Registri eventi di sistema, ID evento di errore di Service Control Manager per i servizi di sistema critici
    • ID evento di errore 2019/2020 con Srv/Server di origine
  • Generare un report di Diagnostica di sistema eseguendo perfmon /report.

Per una macchina virtuale

  • Esaminare i log di sistema e dell'applicazione dal computer in cui si verifica il problema.
  • Generare un report di Diagnostica di sistema eseguendo perfmon /report.
  • Controllare la cronologia del sistema negli strumenti di monitoraggio della gestione virtuale.

Raccogliere dati per i problemi di blocco

Per raccogliere dati per un blocco del server, controllare la tabella seguente e usare uno o più metodi suggeriti.

Tipo e stato del computer Metodo di raccolta dati
Un computer fisico in esecuzione in uno stato bloccato Usare un file dump di memoria per raccogliere dati. In alternativa, usare il metodo 2, 3 o 4. Questi metodi sono elencati più avanti in questa sezione.
Un computer fisico che non è più bloccato Usare il metodo 1, 2, 3 o 4. Questi metodi sono elencati più avanti in questa sezione. E usare Monitoraggio pool per raccogliere dati.
Una macchina virtuale in esecuzione in uno stato bloccato Hyper-V o VMware: usare un file dump di memoria per raccogliere dati per la macchina virtuale in esecuzione in uno stato bloccato.
XenServer: usare il metodo 1, 2, 3 o 4. Questi metodi sono elencati più avanti in questa sezione.
Una macchina virtuale che non è più bloccata Usare il metodo 1, 2, 3 o 4. Questi metodi sono elencati più avanti in questa sezione.

Metodo 1: Dump della memoria

Importante

Seguire attentamente i passaggi in questa sezione. L'errata modifica del Registro di sistema può causare seri problemi. Prima di apportare le modifiche, eseguire il backup del Registro di sistema per il ripristino nel caso si verifichino dei problemi.

Un file dump di memoria completo registra tutto il contenuto della memoria di sistema quando il computer si arresta in modo imprevisto. Un file dump di memoria completo può contenere dati provenienti da processi in esecuzione quando è stato raccolto il file di dump della memoria.

Se il computer non è più bloccato e ora è in esecuzione in uno stato corretto, seguire questa procedura per abilitare il dump della memoria in modo che sia possibile raccogliere il dump della memoria quando si verifica di nuovo il problema di blocco. Se la macchina virtuale è ancora in esecuzione in uno stato bloccato, seguire questa procedura per abilitare e raccogliere il dump della memoria.

Nota

Se si dispone di una funzionalità di riavvio abilitata nel computer, ad esempio la funzionalità Riavvio automatico del sistema nei computer Compaq, disabilitarla. Questa impostazione si trova in genere nel BIOS. Con questa funzionalità abilitata, se il BIOS non rileva un heartbeat dal sistema operativo, riavvierà il computer. Il riavvio può interrompere il processo di dump.

  1. Assicurarsi che il computer sia configurato per ottenere un file dump di memoria completo.

    1. Passare a Esegui e immettere Sysdm.cple quindi premere INVIO.
    2. Nella scheda Avanzate di Proprietà di sistema selezionareImpostazioni prestazioni>>avanzate. Selezionare Modifica per controllare o modificare la memoria virtuale.
    3. Indietroalle impostazioniavanzate>delle proprietà> di sistema in Avvio e ripristino.
    4. Nella sezione Write Debugging Information (Scrivi informazioni di debug ) selezionare Complete Memory Dump (Completa dump memoria).
    5. Selezionare Sovrascrivi qualsiasi file esistente.
    6. Assicurarsi che sia presente un file di paging (pagefile.sys) nell'unità di sistema e che sia di almeno 100 MB sulla RAM installata (dimensioni iniziali e massime).
    7. Assicurarsi che lo spazio disponibile nell'unità di sistema sia maggiore rispetto alla RAM fisica.
  2. Per consentire al sistema di generare un file di dump usando la tastiera, abilitare il valore del CrashOnCtrlScroll Registro di sistema.

    1. Aprire il Editor Registro di sistema e quindi individuare le chiavi del Registro di sistema seguenti:

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. Creare la voce del Registro di sistema seguente CrashOnCtrlScroll nelle due chiavi del Registro di sistema:

      • Nome valore: CrashOnCtrlScroll
      • Tipo di dati: REG_DWORD
      • Valore: 1
    3. Chiudere il Editor Registro di sistema e riavviare il computer.

  3. In alcuni computer fisici che eseguono versioni precedenti di Windows, è possibile generare un'interruzione nonmakeable (NMI) da una funzionalità dell'interfaccia Web, ad esempio DRAC, iLo o RSA. Tuttavia, per impostazione predefinita, questa impostazione arresterà il sistema senza creare un dump di memoria.

    Nota

    Per le versioni attualmente supportate di Windows, la chiave del NMICrashDump Registro di sistema non è più necessaria. Un nmi causa un errore di arresto che segue una raccolta di dati dump di memoria.

  4. Quando il computer presenta il problema, tenere premuto il tasto CTRL destro e premere due volte il tasto Di blocco scorrimento per generare un file di dump della memoria.

    Nota

    Per impostazione predefinita, il file di dump si trova nel percorso seguente: %SystemRoot%\MEMORY. DMP.

Metodo 2: Controllo dell'integrità dei dati

Usare l'utilità Di controllo dump (Dumpchk.exe) per leggere un file di dump della memoria. Può anche verificare che il file sia stato creato correttamente e che non sia danneggiato o non valido.

Informazioni su come usare Dumpchk.exe per controllare i file di dump:

Metodo 3: Monitor prestazioni

È possibile usare Windows Monitor prestazioni per esaminare il modo in cui i programmi eseguiti influiscono sulle prestazioni del computer, sia in tempo reale che raccogliendo i dati di log per un'analisi successiva. Per creare raccolte di contatori delle prestazioni e log di traccia eventi in sistemi locali e remoti, eseguire i comandi seguenti in un prompt dei comandi come amministratore:

Logman create counter LOGNAME_Long -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:05:00
Logman create counter LOGNAME_Short -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:00:10

È quindi possibile avviare o arrestare il log eseguendo i comandi seguenti:

logman start LOGNAME_Long / LOGNAME_Short
logman stop LOGNAME_Long / LOGNAME_Short

Il log Monitor prestazioni si trova nel percorso C:\PERFLOGS.

Altri metodi per raccogliere dati

Usare il dump della memoria per raccogliere dati per il computer fisico in esecuzione in uno stato bloccato

Avviso

Seguire attentamente i passaggi in questa sezione. L'errata modifica del Registro di sistema può causare seri problemi. Prima di apportare le modifiche, eseguire il backup del Registro di sistema per il ripristino nel caso si verifichino dei problemi.

Se il computer fisico è ancora in esecuzione in uno stato bloccato, seguire questa procedura per abilitare e raccogliere il dump della memoria:

  1. Assicurarsi che il computer sia configurato per ottenere un file dump di memoria completo e che sia possibile accedervi tramite la rete.

    Nota

    Se non è possibile accedere al computer interessato tramite la rete, provare a generare un file di dump della memoria tramite NMI. Il risultato dell'azione potrebbe non raccogliere un file di dump della memoria se alcune delle impostazioni seguenti non sono qualificate.

    1. Provare ad accedere al desktop del computer con qualsiasi mezzo.

      Nota

      Nel caso in cui l'accesso al sistema operativo non sia possibile, provare ad accedere in remoto al registro Editor nel computer. È quindi possibile controllare il tipo di file di dump della memoria e il file di pagina con cui il computer è attualmente configurato.

    2. Da un computer remoto preferibilmente nella stessa rete e subnet, passare a Registro di sistema Editor>Connetti registro di rete. Connettersi quindi al computer interessato e verificare le impostazioni seguenti:

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\CrashDumpEnabled

        Assicurarsi che la voce del Registro di sistema CrashDumpEnabled sia 1.

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\NMICrashDump

        In alcuni server fisici, se la voce del Registro di sistema NMICrashDump esiste e il relativo valore è 1, è possibile sfruttare il nmi del provider di gestione remota, ad esempio DRAC, iLo e RSA.

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles and ExistingPageFiles

        Se il valore della voce del Pagefile Registro di sistema è gestito dal sistema, le dimensioni non verranno riflesse nel Registro di sistema. Ad esempio, ?:\pagefile.sys)

        Se il file di pagina è personalizzato, le dimensioni verranno riflesse nel Registro di sistema, ad ?:\pagefile.sys 1024 1124esempio . In questo esempio, 1024 è la dimensione iniziale e 1124 è la dimensione massima.

        Nota

        Se le dimensioni non vengono riflesse nel Registro di sistema, provare ad accedere a una condivisione amministrativa in cui si trova il file di pagina. Ad esempio, \\NomeServer\C$.

    3. Assicurarsi che sia presente un file di paging (pagefile.sys) nell'unità di sistema del computer e che sia di almeno 100 MB sulla RAM installata.

    4. Assicurarsi che nelle unità disco rigido del computer sia disponibile più spazio disponibile rispetto alla RAM fisica.

  2. Abilitare il valore del Registro di sistema CrashOnCtrlScroll nel computer per consentire al sistema di generare un file dump tramite la tastiera.

    1. Da un computer remoto preferibilmente nella stessa rete e subnet, passare a Registro di sistema Editor>Connetti registro di rete. Connettersi al computer interessato e individuare le chiavi del Registro di sistema seguenti:

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. Creare la voce del Registro di sistema seguente CrashOnCtrlScroll nelle due chiavi del Registro di sistema:

      Nome valore: CrashOnCtrlScroll Tipo di dati: REG_DWORD Valore: 1

    3. Chiudere il Editor Registro di sistema e riavviare il computer.

  3. Quando il computer presenta il problema, tenere premuto il tasto CTRL destro e premere due volte il tasto Bloc di scorrimento per generare un dump di memoria.

    Nota

    Per impostazione predefinita, il file di dump si trova nel percorso : %SystemRoot%\MEMORY. DMP.

Usare Monitoraggio pool per raccogliere dati per il computer fisico che non è più bloccato

Monitoraggio pool mostra il numero di allocazioni e byte in sospeso di allocazione per tipo di pool e il tag passato alle chiamate di ExAllocatePoolWithTag.

Per altre informazioni, vedere Uso di PoolMon per trovare una perdita di memoria Kernel-Mode ed esempi di PoolMon.

Usare il dump della memoria per raccogliere dati per la macchina virtuale in esecuzione in uno stato bloccato

Usare uno dei metodi seguenti per l'applicazione in cui è in esecuzione la macchina virtuale.

Microsoft Hyper-V

È anche possibile usare la funzionalità NMI predefinita tramite un cmdlet Debug-VM per eseguire il debug e ottenere un dump di memoria.

Per eseguire il debug delle macchine virtuali in Hyper-V, eseguire il cmdlet seguente in Windows PowerShell:

Debug-VM -Name "VM Name" -InjectNonMaskableInterrupt -ComputerName Hostname  

Vmware

È possibile usare snapshot VMware o sospendere lo stato ed estrarre un file dump di memoria equivalente a un file dump di memoria completo. Usare lo strumento Checkpoint to Core (vmss2core) di VMware per convertire i file di stato di sospensione (.vmss) e snapshot (.vmsn) in un file di dump. Analizzare quindi il file usando gli strumenti di debug standard di Windows.

Citrix XenServer

Il processo di dump della memoria si verifica premendo la combinazione di tastiera CTRL+SCROLL LOCK+SCROLL LOCK. Per altre informazioni, vedere Metodo 1 di How to Trigger a Memory Dump from a Windows Virtual Machine Running on XenServer from Citrix (Come attivare un dump di memoria da una macchina virtuale Windows in esecuzione in XenServer da Citrix).

Limitazioni di spazio nell'unità di sistema in Windows Server

In un Windows Server potrebbe non essere disponibile spazio su disco sufficiente per generare un file dump di memoria completo nel volume di sistema.

È disponibile una seconda opzione se l'unità di sistema non ha spazio sufficiente. È possibile usare la voce del Registro di sistema DedicatedDumpFile. Per altre informazioni, vedere Configurare il percorso di destinazione per un dump di memoria.

Per altre informazioni, vedere Come usare il valore del Registro di sistema DedicatedDumpFile per superare le limitazioni di spazio nell'unità di sistema.