Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questo articolo illustra l'utilizzo elevato della CPU. In molte situazioni, le metriche PSI (CPU Pressure Stall Information) forniscono un'indicazione più accurata della pressione della CPU rispetto all'utilizzo da solo. Per ulteriori informazioni, vedere Risolvere i problemi relativi alla pressione della CPU nei cluster AKS usando le metriche PSI.
Sommario
Un utilizzo elevato della CPU è un sintomo di una o più applicazioni o processi che richiedono un tempo di CPU così elevato che le prestazioni o l'usabilità del computer sono interessate. L'utilizzo elevato della CPU può verificarsi in molti modi, ma la configurazione utente lo causa principalmente.
Quando un nodo in un cluster di Servizio Azure Kubernetes (AKS) presenta un utilizzo elevato della CPU, le applicazioni che vi girano possono subire una riduzione delle prestazioni e dell'affidabilità. Anche le applicazioni o i processi diventano instabili, che potrebbero causare problemi oltre le risposte lente.
Questo articolo illustra come identificare i nodi e i contenitori che usano cpu elevata e fornisce procedure consigliate per risolvere un utilizzo elevato della CPU.
Sintomi
La tabella seguente illustra i sintomi comuni dell'utilizzo elevato della CPU:
| Sintomo | Descrizione |
|---|---|
| Saturazione della CPU | Le applicazioni a elevato utilizzo di CPU rallentano altre applicazioni nello stesso nodo. |
| Modifiche di stato lente | I Pod potrebbero richiedere più tempo per essere pronti. |
| Stato del nodo NotReady | Una forte contesa della CPU può sottrarre tempo di CPU al kubelet e impedirgli di inviare tempestivamente gli aggiornamenti di stato al server API. Di conseguenza, il nodo potrebbe essere contrassegnato come NotReady. |
Risolvere i problemi di utilizzo elevato della CPU in Azure Kubernetes Service (AKS)
Per risolvere l'utilizzo elevato della CPU, usare strumenti di monitoraggio efficaci e applicare le procedure consigliate.
Passaggio 1: Identificare nodi e contenitori con utilizzo elevato della CPU
Usare uno dei metodi seguenti per identificare nodi e contenitori con un utilizzo elevato della CPU:
In un browser web, usare la funzionalità Container Insights di AKS nel portale di Azure.
In una console usare lo strumento da riga di comando kubernetes (kubectl).
Container Insights è una funzionalità all'interno dell'Azure Kubernetes Service (AKS). È progettato per monitorare le prestazioni dei carichi di lavoro dei contenitori. Usare Container Insights per identificare nodi, contenitori o pod che determinano un utilizzo elevato della CPU.
Per identificare nodi, contenitori o pod che determinano un utilizzo elevato della CPU, seguire questa procedura:
Vai al cluster dal portale di Azure.
In Monitoraggio selezionare Informazioni dettagliate.
Impostare l'intervallo di tempo appropriato.
Trovare i nodi con utilizzo elevato della CPU e verificare se l'utilizzo della CPU del nodo è stabile.
Selezionare Nodi. Impostare Metrica su Utilizzo CPU (millicores) e quindi impostare l'esempio su Max. Usare la funzionalità di ordinamento in Max per ordinare i nodi secondo Max%. I nodi con il maggior utilizzo della CPU vengono visualizzati nella parte superiore.
Nello screenshot seguente il nodo usa solo 12% della CPU massima ed è in esecuzione per 16 giorni.
Dopo aver trovato i nodi con utilizzo elevato della CPU, selezionare i nodi per trovare i pod in essi e il relativo utilizzo della CPU.
Annotazioni
La percentuale di utilizzo della CPU o della memoria per i pod si basa sulla richiesta di CPU specificata per il contenitore. Non rappresenta la percentuale di utilizzo della CPU o della memoria per il nodo. Esaminare quindi l'utilizzo effettivo della CPU o della memoria anziché la percentuale di utilizzo della CPU o della memoria per i pod.
Dopo aver visualizzato l'elenco dei pod con utilizzo elevato della CPU, è possibile eseguirne il mapping alle applicazioni che causano il picco di utilizzo della CPU.
Passaggio 2: Esaminare le procedure consigliate per evitare un utilizzo elevato della CPU
Esaminare la tabella seguente per informazioni su come implementare le procedure consigliate per evitare un utilizzo elevato della CPU:
| Procedura consigliata | Descrizione |
|---|---|
| Impostare richieste e limiti appropriati per i contenitori | Le richieste della CPU consentono a Kubernetes di pianificare i carichi di lavoro e determinare l'allocazione della CPU durante la contesa. I limiti di CPU restringono la quantità massima di CPU che un contenitore può utilizzare e possono comportare una limitazione delle prestazioni. Configurare richieste e limiti in base ai requisiti osservati del carico di lavoro e scegliere la classe QoS (Kubernetes Quality of Service) appropriata per ogni pod. |
| Abilitare il Horizontal Pod Autoscaler (HPA) | Impostare le richieste CPU appropriate e usare HPA per i carichi di lavoro che possono essere ridimensionati orizzontalmente. Verificare che il carico di lavoro non abbia raggiunto il numero massimo di repliche configurato e che il cluster disponga di capacità sufficiente per repliche aggiuntive. |
| Aumentare o regolare la capacità del pool di nodi | Se il carico di lavoro richiede una maggiore capacità della CPU, prendere in considerazione l'aggiunta di nodi, la selezione di dimensioni di una macchina virtuale con più o più risorse CPU appropriate o lo spostamento del carico di lavoro in un pool di nodi dedicato. |
| Isolare i carichi di lavoro di sistema e utente | Eseguire carichi di lavoro dell'applicazione nei pool di nodi utente e riservare pool di nodi di sistema per carichi di lavoro di sistema critici. Questa separazione riduce il rischio che l'utilizzo della CPU dell'applicazione influisca sui componenti di sistema Kubernetes. |