Tomcat erreicht eine CPU-Auslastung von 100 % auf einer 8-GB-Instanz, funktioniert aber auf einer 16-GB-RAM-Instanz einwandfrei

Tomcat erreicht eine CPU-Auslastung von 100 % auf einer 8-GB-Instanz, funktioniert aber auf einer 16-GB-RAM-Instanz einwandfrei

Ich habe eine Java-Webanwendung, die auf Tomcat 8.5.x auf einer AWS Ubuntu EC2-Instanz läuft.

Ich habe diese Anwendung auf einemm5.xlargeInstanz, die 4 vCPU und 16 GB RAM bietet. Bei dieser Instanz lag die CPU-Auslastung meiner App bei etwa 60 % und die RAM-Auslastung bei etwa 5 GB.

Da die RAM-Nutzung ziemlich gering ist, dachte ich daran, diese App auf eine rechenoptimierte Instanz zu verschieben, um Kosten zu sparen. Daher habe ich sie verschoben aufc5.xlargeInstanz, die 4 vCPU und 8 GB RAM bietet. Auch bei dieser Instanz war meine App-Nutzung gleich, etwa 5 GB RAM-Nutzung und 60 % CPU. Es funktionierte fast 24 Stunden lang einwandfrei, danach stieg die CPU-Nutzung plötzlich auf 100 % und ging nie wieder runter, was dazu führte, dass die App nicht reagierte.

Ich habe versucht,m5.großInstanz, die 8 GB RAM bietet, dasselbe Problem trat auch dort auf, nach etwa 24 Stunden 100 % CPU. Letztendlich habe ich es zurück auf die Instanz m5.xlarge verschoben und seit über 10 Tagen läuft meine App einwandfrei. Die Nutzung ist auch dieselbe.

Jetzt kann ich nicht debuggen, warum diese 100 % CPU-Auslastung bei einer 8 GB-Instanz auftritt, während meine RAM-Auslastung nie 5 GB überschreitet. Ich habe Tomcat nicht für die Produktionsumgebung optimiert, ich verwende die Standardeinstellungen. Gibt es eine wahrscheinliche Ursache, der ich nachgehen sollte?

verwandte Informationen