Risoluzione dei problemi relativi alla limitazione (Memorizzazione nella cache di Windows Server AppFabric)
Quando esaurisce la memoria fisica, l'host della cache di Windows Server AppFabric può entrare in uno stato denominato limitato. Il cluster di cache non scriverà dati in nessuna cache residente su un host della cache limitato finché non verrà aumentato il livello di memoria fisica disponibile per risolvere lo stato di limitazione.
Diagnosticare i sintomi di limitazione
Il sintomo più palese della limitazione deriva dalle applicazioni: i tentativi di scrivere nella cache genereranno errori di DataCacheException. Per ulteriori informazioni sull'eccezione, vedere RetryLater (Throttled) (Memorizzazione nella cache di Windows Server AppFabric). Per confermare che la limitazione è diventata un problema sul cluster di cache, è possibile utilizzare uno o più tra i test elencati di seguito.
Utilizzare il comando
Get-CacheClusterHealth
di Windows PowerShell. Verificare se sugli host della cache vi sono cache con percentuali comprese nella categoriaThrottled
.Abilitare il registro operativo nel Visualizzatore eventi su ogni host della cache e cercare l'Evento 116 che specifica "Servizio in modalità limitata".
Utilizzare Performance Monitor per tenere traccia della Memoria | MByte disponibili su ciascun host della cache. Quando la percentuale di memoria fisica totale scende sotto il 15%, l'host della cache entra in modalità limitata. La limitazione si verifica anche quando la memoria dell'host della cache rientra nel 4% dell'impostazione di
CacheSize
.
Si noti che un server in modalità limitata mostrerà anche un numero maggiore di esecuzioni di rimozione. Per ulteriori informazioni sui problemi di rimozione, vedere Risoluzione dei problemi relativi alla rimozione (Memorizzazione nella cache di Windows Server AppFabric).
Nota
Per ulteriori informazioni sugli strumenti descritti, vedere Strumenti di monitoraggio dello stato (Memorizzazione nella cache di Windows Server AppFabric).
Risoluzione della limitazione
Prima di decidere su una soluzione alla limitazione, è importante capire il motivo per cui è insorto il problema. Nella tabella seguente sono elencate le possibili cause con le soluzioni consigliate.
Causa della limitazione | Descrizione e soluzione |
---|---|
Altri processi utilizzano una quantità di memoria eccessiva. |
È possibile che altri processi sull'host della cache stiano utilizzando grandi quantità di memoria. Ciò potrebbe risultare in condizioni di memoria insufficiente, a seconda della quantità di memoria riservata per il Servizio di memorizzazione nella cache. È possibile rilevare questo problema utilizzando il contatore Processo | Byte privati in Performance Monitor per visualizzare la memoria utilizzata da ciascun processo. Se il Servizio di memorizzazione nella cache, DistributedCacheService.exe, non è la causa principale di consumo della memoria, cercare altri processi che consumano un'alta percentuale della memoria. Una soluzione consiste nello spostare i processi problematici su altri server che non siano host della cache. È anche possibile aggiungere ulteriore memoria fisica alla macchina. Nota Benché sia possibile utilizzare |
Il Servizio di memorizzazione nella cache utilizza una quantità di memoria eccessiva |
Questo problema può essere identificato utilizzando Gestione attività o Performance Monitor per visualizzare la memoria utilizzata dal Servizio di memorizzazione nella cache, DistributedCacheService.exe. È possibile che per una o più cache siano state disabilitate la scadenza e/o la rimozione. Ciò può contribuire a una condizione di memoria insufficiente. Per individuare le cache nel cluster utilizzare il comando |
Memoria .NET non raccolta. |
Benché il processo di Garbage Collection nella memoria .NET avvenga automaticamente, a volte è possibile, tra una raccolta e l'altra, che la memoria non raccolta contribuisca a condizioni di memoria insufficiente sull'host della cache. In questo scenario, utilizzare il comando |
Regioni personalizzate. |
Un'applicazione può creare regioni personalizzate con il metodo CreateRegion. Un'area esiste sempre su un solo host di cache. Se l'applicazione inserisce grandi quantità di dati in un'unica regione, è possibile che un host della cache si trovi in uno stato limitato anche se in altri host della cache è presente memoria disponibile. Una soluzione consiste nell'aggiungere ulteriore memoria a ciascun host della cache nel cluster, poiché non è possibile stabilire con sicurezza quale host della cache verrà selezionato per la regione personalizzata. L'altra soluzione consiste nel riprogettare l'applicazione in modo che archivi una quantità minore di dati nella regione o che crei e utilizzi più regioni. |
Tag di tabelle hash |
Diversi metodi di memorizzazione nella cache di AppFabric consentono di memorizzare elementi nella cache con tag associati. L'utilizzo di tag consente di creare tabelle hash interne che non verranno rimosse in un secondo momento, neanche dopo aver eliminato gli elementi associati. Non si tratta di una perdita di memoria, ma contribuisce all'utilizzo di memoria complessivo da parte del Servizio di memorizzazione nella cache di AppFabric. Se un'applicazione utilizza tag che cambiano nel tempo, ciò potrebbe contribuire alla pressione sulla memoria. |
Vedere anche
Concetti
Risoluzione dei problemi del server (Memorizzazione nella cache di Windows Server AppFabric)
2011-12-05