Zugriffe auf 1 Request / sek beschränken
Posted: 2009-05-07 11:53
Hallo,
ich habe ein PHP-Skript, dass von extern abgefragt wird und Ergebnisse aus einer DB zurückliefert. Zu "normalen" Stunden Im Schnitt kommen 1200 Abfragen pro Stunde. Zu Spitzenzeiten steigen die Abfragen auf knapp 6000 Abfragen pro Stunde. Dementsprechend kommt die Datenbank unter Last und schaukelt sich hoch.
Kann ich z.B. mit IPTables eine Regel erstellen, welche die Anzahl der Abfragen einer gewissen IP auf Port 80 pro Sekunde auf max. 3 beschränkt?
Wenn ja, wie würde diese Regel lauten?
Wenn nein, welche anderen Möglichkeiten gibt es noch? Einen "Load"-Stop habe ich schon eingebaut, d.h. wenn die Server-Last auf über 3 steigt, werden keine Anfragen mehr an die DB weitergereicht. Allerdings greift dieser Stop ggfs. nur alle Minute, weils momentan via Cronjob läuft.
Vielen Dank für evtl. Ideen
LG,
Stefan
ich habe ein PHP-Skript, dass von extern abgefragt wird und Ergebnisse aus einer DB zurückliefert. Zu "normalen" Stunden Im Schnitt kommen 1200 Abfragen pro Stunde. Zu Spitzenzeiten steigen die Abfragen auf knapp 6000 Abfragen pro Stunde. Dementsprechend kommt die Datenbank unter Last und schaukelt sich hoch.
Kann ich z.B. mit IPTables eine Regel erstellen, welche die Anzahl der Abfragen einer gewissen IP auf Port 80 pro Sekunde auf max. 3 beschränkt?
Wenn ja, wie würde diese Regel lauten?
Wenn nein, welche anderen Möglichkeiten gibt es noch? Einen "Load"-Stop habe ich schon eingebaut, d.h. wenn die Server-Last auf über 3 steigt, werden keine Anfragen mehr an die DB weitergereicht. Allerdings greift dieser Stop ggfs. nur alle Minute, weils momentan via Cronjob läuft.
Vielen Dank für evtl. Ideen
LG,
Stefan