Wie kann ich eine CPU-Auslastung von 90 % vermeiden, indem ich in meinem Browser nur F5 drücke?

Wie kann ich eine CPU-Auslastung von 90 % vermeiden, indem ich in meinem Browser nur F5 drücke?

Ich habe eine PHP-Website und wenn ich in meinem Browser F5 drücke, erhalte ich diese CPU-Auslastung:

$ w 11:34:54 up 16 Tage, 1 min, 5 Benutzer, Lastdurchschnitt: 90,81, 32,02, 12,57

Es kommt von allen Seiten meiner Website! Ich glaube also, es kommt nicht vom Algorithmus, sondern von der Apache-Konfiguration? Da bin ich mir nicht ganz sicher.

Ich verwende PHP (mit Codeigniter), MongoDB mit einer einzigen Verbindung. Ich verwende eine globale Konstante, um meine Verbindung zu verwenden und sie jedes Mal wiederzuverwenden. Ich erstelle nicht bei jeder Anfrage eine neue Verbindung. Fast alle Webseiten antworten in weniger als 300 ms.

Kommt es also von Apache (und dann stelle ich meine Frage auf der richtigen Stackoverflow-Website) oder kommt es von meiner globalen PHP-Verbindung (und dann wechsle ich zu Stackoverflow)?

Oder kommt es von einem anderen Parameter? Wenn es von Apache kommt, gibt es eine Möglichkeit, die Anzahl gleichzeitiger Verbindungen zu begrenzen? Denn das wiederholte Laden derselben Seite, ohne zu warten, bis die erste Anfrage abgeschlossen ist, ist nicht das richtige Verhalten.

Jemand kann meinen Server also durch Drücken von F5 lahmlegen. Wenn es ein DDOS war, wäre das ok, aber „nur“ ein DOS.

Danke,

A.

Antwort1

Sie könnten die folgenden Module ausprobieren

  • mod_evasive(Denial of Service-Umgehungsmodul für Apache)
  • mod_limitipconn(Modul zur Begrenzung gleichzeitiger Verbindungen für Apache)
  • mod_cband(Apache 2-Modul zur Lösung des Problems der Bandbreitenbeschränkung von Benutzern und virtuellen Hosts.)

DerFadenkönnte auch nützlich sein

Und noch etwas. Sie können nginx hinter Apache installieren, da es sehr flexible Möglichkeiten zur Ratenbegrenzung bietet.

verwandte Informationen