Begrenzung der Bildaufrufe pro Minute? Begrenzung der Bildaufrufe pro Minute?
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Begrenzung der Bildaufrufe pro Minute?

Started by SimonG, October 29, 2012, 06:24:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SimonG

Hallo Freunde der gepflegten Online-Gallerien  ;)

Erstmal vielen Dank für diese wunderbare Gallerie-Software, ich rechne es den Entwicklern und geduldigen Moderatoren hier hoch an, ohne jeglichen Eigennutz diese Wunderwaffe auf die Beine gestellt zu haben und sie bis heute zu supporten.

Meine Gallerie hat ein eher banales Problem, sie funktioniert einfach zu gut. :)

Um es zu erklären, ich hoste auf den US-Hoster "Hostgator", der eigentlich unbegrenztes Hosting für kleines Geld anbietet, uneigentlich aber zumindest die CPU-Nutzung begrenzt, da man auf einen "Shared Server" hostet, also sich einen Server mit anderen Usern teilt.
Die Gallerie hat großen Anklang, ich will aber nicht mit Zahlen protzen. Meine CPU-Nutzung ist aber, besonders in den Abendstunden, regelmäßig zu hoch und so passierte es schon öfter, dass Hostgator meinen Accout suspendierte (jedoch nur temporär).
Mittlerweile beobachte ich über Google-Analytics schon panisch die Livestatistiken und muss teilweise bewusst meine Gallerie lahmlegen, um den Besucherandrang zu bremsen. Für einen Server habe ich leider nicht das Budget, zudem bin ich eher ein Anfänger.

Ich habe Google-Analytics genauer beobachtet und bin mir sicher, dass eine Limitierung der Bildaufrufe, bzw Aufrufe allgemein pro Minute sinnvoll wäre.
Eine Begrenzung auf 200 Bildaufrufe/Minute würde meine CPU-Nutzung im halbwegs grünen Bereich halten. Ist diese Grenze erreicht, wäre ein Texthinweis praktisch.
Wie gesagt, ich bin eher ein Anfänger, hab aber schon fleißig gegoogelt und im Forum recherchiert, leider gibt es da bisher keine Lösung.

Weitere Details:
- die Gallerie ist umfangreich, ca. 24000 Bilder, das hat aber bisher keine Performance-Schwierigkeiten bewirkt (großen Respekt!)
- im Sonstigen ist die Gallerie sehr rustikal, kein Anmeldesystem, von den Plugins nur "Jsmin" aktiv, Kommentare notgezwungen deaktiviert, kein CPU-gefräßiger /randalb/ im Template, etc.  -> alles bereits auf CPU-arme Nutzung optimiert
- auch CloudFlare.com in Benutzung um ein paar Seitenaufrufe damit abzufangen
- Leecher zu blocken (http://forum.coppermine-gallery.net/index.php?topic=50116.0) habe ich versucht, macht allerdings CPU-bezüglich keinen Effekt, Leecher sind also nicht das Problem
- die Seitenaufrufe pro Benutzer (dafür gibt es ja ein Plugin, max. 10 Views für unregistrierte User) zu begrenzen möchte ich eher vermeiden


Einen Link zu meiner Gallerie möchte ich ungern posten. Für eine Lösung wäre ich sehr dankbar (oder gehört das eher in Richtung bezahlter Plugin-Entwicklung?)

Vielen Dank für die Aufmerksamkeit, ich hoffe ihr könnt mir weiterhelfen.

Αndré

Meiner Meinung nach ist die künstliche Beschneidung deiner Galerie nicht die Lösung, aber das ist natürlich deine Entscheidung. Ich würde mich an deiner Stelle nach einem größeren Paket oder anderen Dienstleister umsehen.

Da nicht nur die Bildaufrufe CPU-Zeit verschlingen, sondern jede dynamisch generierte Seite, muss die Anzahl der gesamten Seitenaufrufe überwacht werden. Dafür könnte man eine neue Tabelle in der Datenbank erstellen die bei jedem Seitenaufruf den aktuellen Zeitstempel speichert. Bei jedem Seitenaufruf muss dann geprüft werden, wieviele Einträge es in den letzten x Sekunden/Minuten gab und bei Überschreiten eines Grenzwertes wird dann deine gewünschte Meldung angezeigt. Natürlich kostet auch diese Überprüfung CPU-Zeit. Um überhaupt CPU-Zeit dabei zu sparen, muss diese Überprüfung so früh wie möglich geschehen (also vermutlich irgendwo in include/init.inc.php).

Hilft dir das schon weiter oder brauchst du detailiertere Angaben?

SimonG

Danke für deine Antwort :)

Ja, absolut wahr, doch größere Pakete bieten keine (oder eine sehr teure) Traffic-Flatrate an. Die brauche ich aber unbedingt und ist nur bei Hostgators "Shared Plan" bezahlbar.


Ich muss mich leider als absoluter Laie in diesem Thema outen. Deine Idee klingt vielversprechend, aber ich habe keinen Schimmer für eine genauere Umsetzung. Detailiertere Angaben würden mich sehr freuen.


Αndré


SimonG

Wow, vielen Dank André!

Ich habe dein Plugin jetzt eine gute halbe Stunde in Benutzung und es funktioniert soweit prächtig. Die Meldung erscheint wie geplant und durch das Plugin erhöht kaum auf die CPU-Zeit. Die große Feuerprobe kommt zwar erst am Wochenende, doch bisher scheint alles in bester Ordnung!
Also nochmals vielen Dank!


Αndré

In der Datei codebase.php kannst du die Anzahl der Seitenaufrufe und den Zeitraum anpassen. Seitenaufrufe von Administratoren werden nicht gezählt und können die Galerie bei zu vielen Seitenaufrufen weiterhin benutzen. Das Anmeldeformular wird derzeit vermutlich auch gesperrt, wodurch sich ein Besucher nicht als Administrator authentifizieren kann. Das könnte man bei Bedarf noch ändern :)

SimonG

Klasse, direkt mal die Seitenaufrufe auf 270 erhöht, der Server kann anscheinend deutlich mehr ab (Google Analytics zählt wohl auch längst nicht alle Seitenaufrufe).

Ich bin so schon mehr als zufrieden, dass das Anmeldeformular auch gesperrt wird, stört mich nicht. :)