Salta al contenuto

Come posso risolvere i problemi relativi a tempi di risposta elevati in ECS?

4 minuti di lettura
0

Desidero risolvere i problemi relativi a tempi e latenze di risposta elevati con le mie attività Amazon Elastic Container Service (Amazon ECS).

Risoluzione

Verifica le metriche relative al livello di servizio di Amazon ECS

Un maggiore utilizzo della CPU e della memoria può causare latenze di risposta elevate dalle attività Amazon ECS. Utilizza le metriche di Amazon CloudWatch per visualizzare l'utilizzo della CPU e della memoria a livello di servizio. Se hai attivato CloudWatch Container Insights, controlla l'utilizzo della CPU e della memoria a livello di container. Se non hai attivato Container Insights, consulta Come posso configurare CloudWatch Container Insights per monitorare le mie attività Amazon ECS e la mia istanza di container?

Se i container dell'applicazione devono eseguire carichi di lavoro che richiedono un utilizzo intensivo della CPU, valuta la possibilità di passare a una maggiore dimensione dell’attività che includa più CPU virtuale (vCPU) e memoria. Oppure attiva Application Auto Scaling.

Attività Amazon ECS con tipo di avvio Amazon EC2

Verifica l'utilizzo della CPU e della memoria dell'istanza Amazon Elastic Cloud Compute (Amazon EC2) per le attività Amazon ECS che utilizzano il tipo di avvio Amazon EC2.

Utilizza le metriche di CloudWatch per monitorare le prestazioni di rete dell'istanza Amazon EC2. Se la larghezza di banda della rete dell'istanza supera la larghezza di banda di base dell'istanza disponibile, utilizza un tipo di istanza più grande con una larghezza di banda di base elevata.

Utilizza la metrica di CloudWatch CPUUtilization per monitorare l'utilizzo della CPU dell'istanza. Inoltre, accedi all'istanza per verificare l'utilizzo della memoria. Se l'utilizzo della CPU o della memoria è elevato, aggiungi altre istanze al cluster per distribuire le attività su più istanze. Oppure cambia l'istanza con un tipo di istanza più grande.

Controlla i log dell'applicazione per determinare se esiste una latenza di risposta elevata da un servizio a valle. È consigliabile attivare AWS X-Ray per risolvere i problemi di latenza.

Misura la latenza di risposta

Se il servizio Amazon ECS è alla base di un Application Load Balancer, utilizza la metrica di CloudWatch TargetResponseTime per misurare il tempo di risposta. Questa metrica fornisce il tempo medio di risposta per le richieste instradate tramite Application Load Balancer. Se il valore è elevato, potrebbero verificarsi ritardi nell'infrastruttura o nell'applicazione di backend.

Per misurare la latenza di risposta direttamente dal container, accedi al container dell'applicazione. Per le attività con tipo di avvio Amazon EC2, esegui il comando Docker -it container id per accedere al container. Per le attività con tipo di avvio Fargate, utilizza ECS exec per accedere al container.

Quindi esegui il seguente comando per misurare la latenza di risposta:

curl -kso /dev/null -w "\n===============\n
| Connect: %{time_connect}\n
| App connect: %{time_appconnect}\n
| Pre-transfer: %{time_pretransfer}\n
| Time to First Byte (TTFB): %{time_starttransfer}\n
| Total: %{time_total}\n
| HTTP Code: %{http_code}\n===============\n" http://localhost:port/endpoint

Nota: sostituisci port con la porta del tuo container e endpoint con il tuo endpoint.

Nell'output del comando precedente, il campo Time to First Byte (TTFB) mostra il tempo necessario per l'arrivo del primo byte. L'output include anche il tempo di elaborazione del server. Se il tempo di elaborazione è elevato, l'applicazione impiega più tempo per elaborare la richiesta.

Informazioni correlate

Come posso risolvere i problemi di utilizzo elevato della CPU in un'attività Amazon ECS su Fargate?

How can I monitor high memory utilization for Amazon ECS tasks on Fargate? (Come posso monitorare l'utilizzo elevato della memoria per le attività Amazon ECS su Fargate?)

Come faccio a calcolare l'utilizzo totale della rete per le mie istanze EC2 e determinare quale istanza ha utilizzato la maggior larghezza di banda in un intervallo di date?

AWS UFFICIALEAggiornata un anno fa