| Home Profil Fun |
#71 Linux 07.06.2009
Die Priorität von CGI-Prozessen ändernManche CGI-Skripte verbrauchen sehr viel CPU-Leistung. Ein Beispiel wäre htsearch, die Suchmaschine des Paketes htdig. Es wird zum Indizieren und Suchen auf den eigenen Webseiten verwendet. Abhängig von der Anzahl der Besucher und der größe der Datenbank kann htsearch das ganze System schnell zum Stillstand bringen. Eine Möglichkeit damit umzugehen ist htsearch mit Hilfe von nice eine niedrigere Priorität zuzuweisen. Dadurch können mehr Benutzer gleichzeitig die Suche verwenden ohne das System zu überlasten. Dies führt auf der anderen Seite natürlich dazu, dass die einzelnen Suchen länger dauern. Um htsearch mit nice zu betreiben kann man ein kleines Perl-Wrapper-Skript htsearch.cgi erstellen und darin eine neue Priorität angeben. #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); print `nice -n 10 ./htsearch`; exit 0; Anschließend erstellt man einen symbolischen Link vom Wrapper-Skript zum eigentlichen Binary. ln -s ./htsearch ./htsearch.cgiWenn htsearch.cgi von einer HTML-Form gestartet wird läuft der Prozess nun mit der Priorität 10. Normallerweise läuft er mit 0. Je höher der Wert ist, desto länger braucht der Prozess für die Abarbeitung. Einen bereits laufenden Prozess kann man mit renice steuern. renice 10 -p 818710 ist die neue Priorität und 8187 ist die PID. Der Wert für die Priorität reicht von -20 (am schnellsten) zu 19 (am langsamsten). Je netter desto langsamer :-) |