[Problem] CPU usage für PHP-CGI auf Fritzbox begrenzen

SQLeiter

Neuer User
Mitglied seit
19 Nov 2012
Beiträge
6
Punkte für Reaktionen
1
Punkte
3
Hallo Allerseits, mit Eurer und anderer Internet(t)ies Hilfe habe ich derzeit einen Apache + PHP + SQLite (ohne Freetz) auf der 7390 laufen. Um eine Wetterstation mit dem Frewe-Server (mal googlen), der Original zusammen mit mySQL funktioniert, auch auf der Fritzbox laufen zu lassen, habe ich das nach SQLite portiert. Das ganze basiert dann auf PHP -> der Frewe-Server pingt eine PHP-Seite an und die fragt wiederum den Frewe-Server mit $_GET ab und liest die Wetterwerte aus. Bei der Anzeige der Wetterdaten gibts dann das Problem: Das funktioniert gut bis ca 15000 Eintägen, dann wird das Ganze zäh und später wird die Webseite, die die Wetterdaten derzeit tabellarisch ausgibt, verzögert oder gar nicht angezeigt (und auch andere Funktionen der Fritzbox haken). Ich habe erst versucht mit dem Befehl 'nice' den Apache-Server mit niedrigster Priorität zu starten, was auch funktioniert aber nicht hilft. Mit 'top' fand ich dann heraus, das php-cgi für die Auslastung des Prozessors verantwortlich ist - bis zu 99% bei DB-Größe >4MB. Nun wird aber php-cgi aus der Webseite bzw. vom Apache gestartet - ich komme also nicht zu einer Priorisierung dieses (Unter)Programms.
Vielleicht kennt ihr einen Weg das Problem zu beheben...? Hat jemand Erfahrung mit z.B. CPUlimit - habe einiges probiert, bin aber zu keinem Ergebnis gekommen.
Als Workaround arbeite ich derzeit mit 3MB-Tranchen - sprich alle 3MB wird ein neue DB erstellt und die alte mit Datum "archiviert".
(Auch ein Wrap wäre denkbar, allerdings kommt es dann zu keiner langfristigen Wetterdatenaufnahme.)
Andere Vorschläge sind Willkommen!
Schöne Grüße
 
... habe ich derzeit einen Apache + PHP + SQLite (ohne Freetz) auf der 7390 laufen. ...Mit 'top' fand ich dann heraus, das php-cgi für die Auslastung des Prozessors verantwortlich ist - ...
Andere Vorschläge ...
Evtl. mit Freetz (... d. h. dynamisch gelinkt) und trickle probieren.
Code:
http://www.linux-magazin.de/Heft-Abo/Ausgaben/2005/02/Tropfen-fuer-Tropfen2
 
Guter Vorschlag, auch wenn ich quasi auf den internen Speicher der 7390 zugreife, also alles innerhalb der Box passiert, könnte es ja sein, das PHP für den SQLite-DB-Zugriff über die 127.0.0.1 geht. Ich versuche das mal rauszubekommen - der Befehlssatz ist ja ziemlich eingeschränkt...
 
Ich habe in meiner geringen Freizeit mal einiges probiert - es gibt auch ein "renice" und ich sehe auch, dass der Prioitätslevel dann bei 19 (niedrigster Priolevel) ist. Wenn ich Apache mit nice starte hat das auch Einfluss auf php-cgi, welches dann auch ein "N" (Prio niedriger als normal) bekommt, wenn ich mir die Prozesse mit ps anschaue. Leider lastet php-cgi bei Datenbanken größer 3MB trotzdem das System voll aus. Vermutlich weil ja bis zu 99% idle verfügbar ist - das managen der anderen hoch priorisierten Prozesse die zwischendurch hochkommen, jedoch nicht so schnell funktioniert.
Nun ja, jedenfalls läuft der Aufruf von php-cgi aus Apache heraus nicht über einen Port, somit kann ich das vorgeschlagene Programm nicht nutzen.
Gibt es andere Vorschläge zur Resourcen-Begrenzung für Applikationen/Prozesse unter Debian?
 
Kostenlos!

Statistik des Forums

Themen
248,899
Beiträge
2,304,441
Mitglieder
378,594
Neuestes Mitglied
kerbilg