Laravel – Hohe CPU-Auslastung nach der Bereitstellung
P粉769413355
P粉769413355 2024-03-27 11:26:47
0
1
502

Ich habe ernsthafte Probleme bei der Bereitstellung meiner Laravel-Anwendung. Dies ist eine Nachrichtenseite, nichts Kompliziertes. Die gesamte Homepage wird in Redis als reines HTML zwischengespeichert und Abfrageergebnisse werden ebenfalls in Redis gespeichert, sodass die MySQL-Nutzung sehr minimal ist. Da die Anwendung voll funktionsfähig ist, haben wir beschlossen, sie nachts in der Produktionsumgebung zu testen. Nach der Bereitstellung stellten wir fest, dass die CPU-Auslastung auf allen 12 Kernen auf 90–100 % anstieg, sodass die Anwendung sehr langsam oder überhaupt nicht lief. Es gibt etwa 400 Benutzer und 17–20 Anfragen pro Sekunde.

Wir haben versucht, die Servereinstellungen zu ändern (z. B. PHP-FPM), aber ohne Erfolg. Wir haben einige Tests mit Apache Benchmark durchgeführt und die Ergebnisse zeigten, dass die CPU-Auslastung bei 10 gleichzeitigen Benutzern etwa 80–100 % betrug. Als nächstes wiederholten wir den Test mit einem sauberen Laravel (ohne unsere Anwendung) mit ähnlichen Ergebnissen.

Was wir verwenden:

  • Laravel 9.0
  • Server: 12 Kerne, 128 GB RAM
  • Plesk Obsidian 18.0.48、CentOS 7.9.2009
  • Apache + Nginx als Reverse-Proxy

Wir haben festgestellt, dass Nginx-Caching die CPU-Auslastung in Anwendungen wie Wordpress oder Drupal reduzieren kann. Aber ich denke, Laravel nutzt es nicht. Muss Laravel so konfiguriert werden, dass es den Nginx-Reverse-Proxy verwendet und ihn auf besondere Weise zwischenspeichert?

Ich weiß wirklich nicht, was ich tun soll. Hat jemand ähnliche Probleme festgestellt?

P粉769413355
P粉769413355

Antworte allen(1)
P粉463840170

Laravel 在 Nginx 上运行得很好。我使用 Nginx 在 Google Cloud 上的容器中运行我的应用程序,没有任何性能问题。

如果您想使用保留代理,这个代理可以帮我完成这项工作:

server {

listen 80;

your_news_app.com;

location / {
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Host $host;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_pass http://localhost:8000;
}

}

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage