Dateioperation langsamer, wenn er von mod_perl exputiert ist als bei der Ausführung in CGI

StackOverflow https://stackoverflow.com/questions/6339203

Frage

Ich habe eine Anwendung, die auf CGI ausgeführt wird. Ich habe es auf mod_perl2 (mit Apache2 :: compat) portiert und die CGI -Datei in einen mod_perl -Handler umschreibe. Seltsamerweise ist die Aufführung, die ich aufgrund des mod_perl erhalten habe, durch die Latenz in der Protokollierung überschattet.

Der Protokollierungsmechanismus in der Anwendung ist wie logger-> logmsg (msg)

logger :: logmsg {my $ msg = Shift; Öffnen Sie die Logfile, ">> logfile"; LOGFILE PRINT $ MSG CLAY LOGFILE; }

Die Anwendung wird viel Protokollierung durchgeführt und wird durch verschiedene Protokollierungsstufen gesteuert. Wenn ich die Protokollierung ausschalte, funktioniert die Transaktion bei mod_perl 80% schneller als bei CGI (Codebasis ist gleich. Ich leite nur mit einem Handler für mod_perl- und Gateway -Skript für CGI). Wenn ich die Protokollierungsanwendung auf mod_perl einschalte, wird 80% langsamer ausgeführt.

Aus den Protokollen konnte ich sehen, dass dasselbe Protokollmodul .01 Sekunden dauert, um MSG in Datei anzuhängen, wenn sie als CGI -Skript ausgeführt werden, und 0,03 Sekunden, wenn Sie Thro mod_perl -Handler ausführen.

Ich habe verschiedene Methoden ausprobiert, z. Gibt es etwas, das ich mit diesem Ansatz falsch mache?

Warum wird der Dateibetrieb dreimal langsamer, wenn er über mod_perl -Skripte im selben Apache -Server ausgeführt wird?

Jeder Zeiger wird sehr geschätzt.

Vielen Dank.

War es hilfreich?

Lösung

Dies war kein Problem mit der Datei IO selbst. Es gab einen Systemanruf (date +%Y%m%d) den Zeitstempel holen, der dreimal so langsam war wie in CGI. Dies hatte die Verlangsamung.

Ich bin mir jedoch nicht sicher, warum Apche den Systembefehl dreimal so schnell ausführen kann, wenn sie CGI statt modperl ausgeführt werden.

Entschuldigung für die Fehlinformation in der Frage.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top