Wie behebe ich Probleme mit hoher Latenz auf meinem ELB Classic Load Balancer?

Lesedauer: 4 Minute
0

Ich erlebe eine hohe Latenz, wenn ich mich mit einem Elastic Load Balancing (ELB) Classic Load Balancer verbinde.

Kurzbeschreibung

Eine hohe Latenz auf einem Classic Load Balancer tritt aus den folgenden Gründen auf:

  • Probleme mit der Netzwerkverbindung
  • Falsche Konfiguration des Classic Load Balancers
  • Hohe Speicherauslastung (RAM) auf Backend-Instances
  • Hohe CPU-Auslastung auf Backend-Instances
  • Unsachgemäße Webserverkonfiguration auf Backend-Instances
  • Probleme mit Abhängigkeiten von Webanwendungen, die auf Backend-Instances ausgeführt werden, wie z. B. externen Datenbanken oder Amazon Simple Storage Service (Amazon S3) -Buckets

Behebung

1.Beheben Sie Netzwerkverbindungsprobleme für Ihren Classic Load Balancer.

2.Konfigurieren Sie den Classic Load Balancer für Ihren Anwendungsfall.

3.Überprüfen Sie die Zugriffsprotokolle für Ihren Classic Load Balancer, um festzustellen, bei welchen Backend-Instances eine hohe Latenz auftritt. Überprüfen Sie backend_processing_time um Backend-Instances mit Latenzproblemen zu finden.
Um zu überprüfen, ob der Webanwendungsserver einer Backend-Instance eine hohe Latenz aufweist, verwenden Sie curl, um die Antwort auf das erste Byte zu messen:

[ec2-user@ip-192.0.2.0 ~]$ for X in `seq 6`; do curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" http://www.example.com/ -so /dev/null; done  
High Latency sample output:  
HTTPCode=200 TotalTime=2.452  
HTTPCode=200 TotalTime=1.035
Low latency sample output:  
HTTPCode=200 TotalTime=0.515  
HTTPCode=200 TotalTime=0.013

4.Überprüfen Sie die durchschnittliche Statistik der Amazon CloudWatch-Latenzmetrik für Ihren Classic Load Balancer. Wenn der Wert hoch ist, liegt ein Problem mit Backend-Instances oder Anwendungsabhängigkeitsservern vor.

5.Überprüfen Sie die maximale Statistik der Latenz-Metrik. Wenn der Wert den Wert für das Leerlauf-Timeout erreicht oder überschreitet, führen Anfragen zu einem Timeout und zu HTTP 504-Fehlern.

6.Suchen Sie in der Latenzmetrik nach Mustern. Messspitzen in regelmäßigen Abständen deuten auf Leistungsprobleme mit Backend-Instances hin, die auf den Overhead durch geplante Aufgaben zurückzuführen sind.

7.Überprüfen Sie die CloudWatch SurgeQueueLength-Metrik für ELB. Wenn Anfragen an den Classic Load Balancer den Maximalwert (1024) überschreiten, werden die Anfragen zurückgewiesen und der Load Balancer generiert einen HTTP 503-Fehler. Die Summenstatistik der SpillOverCount-Metrik misst die Gesamtzahl der abgelehnten Anfragen. Weitere Informationen finden Sie unter How do I troubleshoot Classic Load Balancer capacity issues in ELB?

8.Überprüfen Sie den Apache, der auf Ihren Backend-Instances verarbeitet wird, um nach Speicherproblemen zu suchen.

Beispielbefehl:

watch -n 1 "echo -n 'Apache Processes: ' && ps -C apache2 --no-headers | wc -l && free -m"

Beispiel für eine Ausgabe:

Every 1.0s: echo –n 'Apache Processes: ' && ps –C apache2 –no-
headers | wc -1 && free –m
Apache Processes: 27
          total     used     free     shared     buffers     cached
Mem:      8204      7445     758      0          385         4567
-/+ buffers/cache:  2402     5801
Swap:     16383     189      16194

9.Überprüfen Sie die CloudWatch-Metrik zur CPU-Auslastung Ihrer Backend-Instances. Achten Sie auf eine hohe CPU-Auslastung oder -Spitzen bei der CPU-Auslastung. Für eine hohe CPU-Auslastung sollten Sie Ihre Instances auf einen größeren Instance-Typ aufrüsten.

10.Überprüfen Sie die MaxClient-Einstellung für die Webserver auf Ihren Backend-Instances. Diese Einstellung definiert, wie viele Anfragen die Instance gleichzeitig bearbeiten kann. Erhöhen Sie für Instances mit entsprechender Speicher- und CPU-Auslastung, die eine hohe Latenz aufweisen, den MaxClient-Wert.

Vergleichen Sie die Anzahl der Prozesse, die Apache (httpd) generiert, mit der MaxClient-Einstellung. Wenn die Anzahl der Apache-Prozesse häufig den MaxClient-Wert erreicht, erhöhen Sie den Wert.

Beispielbefehl:

[root@ip-192.0.2.0 conf]# ps aux | grep httpd | wc -l 15

Beispiel für eine Ausgabe:

<IfModule prefork.c>  
StartServers         10  
MinSpareServers      5  
MaxSpareServers      10  
ServerLimit          15  
MaxClients           15  
MaxRequestsPerChild  4000  
</IfModule>

11.Suchen Sie nach Abhängigkeiten, die zu Latenzproblemen auf Ihren Backend-Instances führen.

Hier sind einige der Abhängigkeiten, die zu Latenzproblemen führen können:

  • Gemeinsam genutzte Datenbanken, externe Ressourcen wie S3-Buckets
  • Externe Ressourcenverbindungen, z. B. Network Address Translation (NAT)-Instances
  • Remote-Web-Dienste
  • Proxyserver

Ähnliche Informationen

Überwachen Ihres Classic Load Balancer

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr