• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Prozess-Prioritäten verändern ... aber wie und welchen???

Hallo zusammen..

Ich habe folgendes Problem:
Es existiert ein sehr aufwendiges auf php basierendes Programm.

Dort finden in 15 minuten Takt sehr aufwendige Datenverarbeitungs-Sachen statt.

Zudem hat man die Möglichkeit sich grafiken erzeugen zu lassen.

Jetzt soll, diese Datenverarbeitung immer eine höhere Priorität bekommen, als zum Beispiel das Anzeigen der grafiken.

Kann ich das in Linux ändern?
Denn der Server wird zur Zeit leider wegen Überlastung immer mal wieder in die Knie gezwungen (serverload steigt auf über 10 bis hin zu 25) diese Datenverarbeitung sollte jedoch NICHT beendet werden..

Ich hoffe es weiß jemand einen guten Rat..
Dankeim Voraus..!!
holly
 

anlo

Newbie
Hallo Holly,

in so einem Fall würde ich die Logiken trennen, d.h. einen Daemon schreiben, der sich um die Datenaufbereitung kümmert und die entsprechend bereitstellt. Dieser kann dann mit entsprechend höherer Priorität (man nice) laufen.

der Webprozess zur Darstellung ist dann davon losgelöst und greift auf die Daten zu.

Andreas
 
OP
L

little_holly

Newbie
Hey Andreas..
enn ich das richtig verstehe heißt es , ich sollte die Datenverarbeitung nicht 'php' machen lassen sondern quasi extern ??

Wahrscheinlich ist mir nur noch nicht ganz klar.. was in diesem Fall der 'Deamon' darstellt...

Nochmal eien kurze beschreibung was passiert:
es wird zur Zeit alle 15 minuten via cronjob und wget-Befehl, die php Seite aufgerufen die die aufwendige Verarbeitung macht..

Und übers Netzt loggen sich nebenbei quasilaufen Leute ein, die sich graphen anzeigen lassen und und und...

holly
 

anlo

Newbie
Moin,

little_holly schrieb:
enn ich das richtig verstehe heißt es , ich sollte die Datenverarbeitung nicht 'php' machen lassen sondern quasi extern ??

das kann auch ein php-cli-script sein, aber losgelöst von dem Web-Prozess. diesen prozess kannst Du dann mit nice entsprechend priorisieren, so dass der läuft (der nice-Befehl kann auch im Cronjob stehen)

Wahrscheinlich ist mir nur noch nicht ganz klar.. was in diesem Fall der 'Deamon' darstellt...
das ist das Tool, dass Daten holt, verarbeitet und die Ergebnisse irgendwo ablegt, das soll ja im Hintergrund laufen

Und übers Netzt loggen sich nebenbei quasilaufen Leute ein, die sich graphen anzeigen lassen und und und...

trenn das sauber, also in der Form:

Verarbeitung:
Code:
get remote_data
process data
store local_data
das jetzt mit nice entsprechend hochsetzen (muss dann von root ausgeführt werden, da nur der Tools höher priorisieren kann) die lokalen Daten liegen jetzt entweder in /foo/bar/datafiles oder in einer Datenbank

Display:
Code:
get request
retrieve most_current_local_data
calculate_graph 
display html_page

da sich die lokalen Daten ja nur alle t Minuten ändern, könnte die Grafik generierung auch noch zusätzlich mti einem cache arbeiten (wenn eine Grafik nicht existiert anlegen, sonst die Version von der Platte nehmen)

Jetzt hast Du den ganzen kram sauber getrennt, kannst die Verarbeitung priorisieren und der Webserver liefert evtl. etwas langsamer aus...
 
Oben