Condividi tramite


Raggruppamento host del servizio in Windows 10

L'host del servizio (svchost.exe) è un processo di servizio condiviso che funge da shell per il caricamento di servizi da file DLL. I servizi sono organizzati in gruppi host correlati e ogni gruppo viene eseguito all'interno di un'istanza diversa del processo host del servizio. In questo modo, un problema in un'istanza non influisce sulle altre istanze. I gruppi host del servizio sono determinati combinando i servizi con i requisiti di sicurezza corrispondenti. Ad esempio:

  • Servizio locale
  • Nessuna rete del servizio locale
  • Rete del servizio locale con restrizioni
  • Sistema locale
  • Rete di sistema locale con restrizioni
  • Servizio di rete

Separazione dei servizi SvcHost

A partire da Windows 10 Creators Update (versione 1703), i servizi precedentemente raggruppati verranno invece separati. Ognuno verrà eseguito nel proprio processo SvcHost. Questa modifica è automatica per i sistemi con più di 3,5 GB di RAM che eseguono lo SKU Desktop client. Nei sistemi con 3,5 GB o meno di RAM, si continuerà a raggruppare i servizi in un processo SvcHost condiviso.

I vantaggi di questa modifica della progettazione includono:

  • Maggiore affidabilità grazie all'isolamento dei servizi di rete critici dall'errore di un altro servizio non di rete nell'host e all'aggiunta della possibilità di ripristinare facilmente la connettività di rete in caso di arresto anomalo dei componenti di rete.
  • Riduzione dei costi di supporto eliminando il sovraccarico per la risoluzione dei problemi associato all'isolamento dei servizi di comportamento errato nell'host condiviso.
  • Maggiore sicurezza grazie all'isolamento tra più servizi
  • Maggiore scalabilità grazie alla possibilità di impostazioni e privilegi per ogni servizio
  • Miglioramento della gestione delle risorse tramite la gestione della CPU, dell'I/O e della memoria per ogni servizio e aumento dei dati di diagnostica chiari (CPU del report, I/O e utilizzo della rete per servizio).

Prova questo

Per visualizzare il comportamento di refactoring, creare una macchina virtuale di Windows 10 versione 1703 e configurare le impostazioni di memoria come indicato di seguito:

  1. Per visualizzare i processi raggruppati, impostare la RAM su 3484 MB o meno. Riavviare la macchina virtuale e quindi aprire Gestione attività.
  2. Per visualizzare i processi separati, impostare la RAM su 3486 MB o superiore. Riavviare la macchina virtuale e quindi aprire Gestione attività.

Il refactoring semplifica anche la visualizzazione dei processi in esecuzione in Gestione attività. È possibile esaminare Gestione attività e sapere esattamente quale servizio usa le risorse, senza dover espandere molti gruppi host separati.

Ecco, ad esempio, i processi in esecuzione visualizzati in Gestione attività nella versione 1607 Windows 10:

Esecuzione di processi in Gestione attività, versione 1607.

Confrontarlo con la stessa visualizzazione dei processi in esecuzione in Windows 10 versione 1703:

Esecuzione di processi in Gestione attività, versione 1703.

Eccezioni

Alcuni servizi continueranno a essere raggruppati nei PC in esecuzione con 3,5 GB o più di RAM. Ad esempio, il motore di filtro di base (BFE) e Windows Firewall (Mpssvc) verranno raggruppati in un singolo gruppo host, così come i servizi Mapper endpoint RPC e Chiamata di procedura remota.

Se è necessario identificare i servizi che continueranno a essere raggruppati, oltre a visualizzarli in Gestione attività e usare gli strumenti della riga di comando, è possibile cercare il valore SvcHostSplitDisable nelle rispettive chiavi di servizio in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.

Il valore predefinito 1 impedisce la divisione del servizio.

Ad esempio, la configurazione della chiave del Registro di sistema per BFE è: esempio di un servizio che non può essere separato.

Footprint di memoria

La separazione dei servizi aumenta il numero totale di istanze di SvcHost, aumentando l'utilizzo della memoria. Il raggruppamento dei servizi ha consentito una riduzione modesta del footprint complessivo delle risorse dei servizi coinvolti.

Si consideri l'esempio seguente:

Servizi raggruppati (< 3,5 GB) Split Services (3,5 GB+)
Utilizzo della memoria per i servizi raggruppati. Utilizzo della memoria per servizi separati

Nota

L'oggetto precedente rappresenta i valori osservati di picco.

Il numero totale di istanze del servizio e l'utilizzo della memoria risultante variano a seconda dell'attività. I conteggi delle istanze possono in genere variare da 17 a 21 circa per i servizi raggruppati e da 67 a 74 per i servizi separati.

Prova questo

Per determinare l'impatto della suddivisione dei servizi ospitati in un PC Windows 10 versione 1703, eseguire il cmdlet Windows PowerShell seguente, prima e dopo l'attivazione o disattivazione delle impostazioni di memoria:

Get-Process SvcHost | Group-Object -Property ProcessName | Format-Table Name, Count, @{n='Mem (KB)';e={'{0:N0}' -f (($_.Group|Measure-Object WorkingSet -Sum).Sum / 1KB)};a='right'} -AutoSize