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
Zugriffe auf 1 Request / sek beschränken
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Zugriffe auf 1 Request / sek beschränken
Ist jede der Datenbankabfragen einzigartig oder bekommen viele Clients letztendlich das gleiche Ergebnis bzw. lässt sich das Ergebnis aus kleineren Teilmengen generieren? Falls letzteres der Fall ist, wäre das ein Paradefall für geeignetes Caching...
Ansonsten gibt es z. B. mod_cband für den Apache httpd oder das limit Modul für Netfilter/iptables.
Ansonsten gibt es z. B. mod_cband für den Apache httpd oder das limit Modul für Netfilter/iptables.
-
- Posts: 4
- Joined: 2009-04-23 20:14
Re: Zugriffe auf 1 Request / sek beschränken
Jede Abfrage ist einzigartig. Und falls doch mal ein Doppler zustandekommt, greift immerhin das Caching von MySQL. Alle anderen Caching-Mechanismen scheiden aus.Roger Wilco wrote:Ist jede der Datenbankabfragen einzigartig oder bekommen viele Clients letztendlich das gleiche Ergebnis bzw. lässt sich das Ergebnis aus kleineren Teilmengen generieren? Falls letzteres der Fall ist, wäre das ein Paradefall für geeignetes Caching...
mod_cband hab ich versucht, allerdings hab ich das nicht zum laufen gekriegt. Die Lösung mit iptables würde mir besser gefallen, allerdings bin ich zu sehr DAU, um ne entsprechende Regel anlegen zu können. Vielleicht kann es hier ja jemand?Ansonsten gibt es z. B. mod_cband für den Apache httpd oder das limit Modul für Netfilter/iptables.
LG,
Stefan
-
- Posts: 297
- Joined: 2002-10-15 16:59
- Location: WHV
Re: Zugriffe auf 1 Request / sek beschränken
Ist nicht böse gemeint. Aber dann solltest du dir das Nötige wissen schnell aneignen.
Vorkauen war noch die Stärke dieses Forum. Grade beim einsatz
von Iptables is wissen gefragt, da es auf dein System und deine Anforderngen
zugeschnitten sein mus und niemals allgemein gelten kann.
http://www.netfilter.org/documentation/ ... WTO-7.html
http://de.wikibooks.org/wiki/Linux-Komp ... _IP-Tables
Sehr schön auch das IPTables Buch ISBN: 978-3827321367
Kleiner Tip Interesannt für dich ist die Limit Erweiterung
Vorkauen war noch die Stärke dieses Forum. Grade beim einsatz
von Iptables is wissen gefragt, da es auf dein System und deine Anforderngen
zugeschnitten sein mus und niemals allgemein gelten kann.
http://www.netfilter.org/documentation/ ... WTO-7.html
http://de.wikibooks.org/wiki/Linux-Komp ... _IP-Tables
Sehr schön auch das IPTables Buch ISBN: 978-3827321367
Kleiner Tip Interesannt für dich ist die Limit Erweiterung
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Zugriffe auf 1 Request / sek beschränken
Zusätzlich zu den genannten Links würde ich noch http://iptables-tutorial.frozentux.net/ ... orial.html empfehlen.