Windows CMD-Window ohne Focus slows down py scriptserver
Verfasst: Samstag 31. März 2007, 19:05
Hallo,
zur Zeit suche ich nach Performance
für Webanwendungen basierend auf Python.
Daher untersuchte ich mit Apache
ab.exe -n 1000 -c 10 100kb.html
zum Beispiel ZOPE,
und nun eben einen Python HTTP-Script-Server (BaseHTTPServer).
Dabei ist mir etwas eigenartiges aufgefallen.
Ich starte den HTTP-Script-Server in einem CMD-Fenster.
Als nächstes rufe ich in einem weiteren CMD-Fenster
den Benchmark auf ab.exe -n 1000 -c 10 100kb.html.
Das Fenster mit dem HTTP-Script-Server
gibt pro verarbeiteten request eine message in der Konsole aus,
woraus man auch die Verarbeitungsgeschwindigkeit
optisch ableiten/erkennen kann.
Bei -c 10 (concurrency,parallele requests)
kamen nur ca 10 req/s zustande.
Da ich -c 10, für einen hohen Wert hielt, setzte ich diesen herunter
...erst bei -c 5 war das Ergebnis mit 222 req/s akzeptabel.
Achtung!
Der Focus war bei diesen Tests immer auf dem CMD-Fenster in dem der ab-Bench ablief.
Wenn man wieder -c 10 heranzieht und nach dem Start
des ab-bench sogleich das CMD-Fenster mit dem HTTP-Script-Server anclickt und so den Focus darauf legt,
ja, dann kommen auch 200 req/s zustande.
Offenbar ist die Ausführungs-/Verarbeitungsgeschwindigkeit
innerhalb der Konsole davon abhängig,
ob der Focus darauf liegt oder nicht.
Der tieferliegende Grund scheint mir das Prozess-Handling von Windows2000 zu sein. Der Versuch im TaskManager für den/die CMD-Prozesse Priorität "Echtzeit"/"HohePriorität" zuzuweisen
brachte keine Besserung. Läßt sich die CMD-Konsole mit "ständigem Focus" starten, ohne danach wirklich den Focus zu haben?
Hat jemand ähnliche Erfahrung gemacht, Tipps ?
Mfg Ronsen
zur Zeit suche ich nach Performance
für Webanwendungen basierend auf Python.
Daher untersuchte ich mit Apache
ab.exe -n 1000 -c 10 100kb.html
zum Beispiel ZOPE,
und nun eben einen Python HTTP-Script-Server (BaseHTTPServer).
Dabei ist mir etwas eigenartiges aufgefallen.
Ich starte den HTTP-Script-Server in einem CMD-Fenster.
Als nächstes rufe ich in einem weiteren CMD-Fenster
den Benchmark auf ab.exe -n 1000 -c 10 100kb.html.
Das Fenster mit dem HTTP-Script-Server
gibt pro verarbeiteten request eine message in der Konsole aus,
woraus man auch die Verarbeitungsgeschwindigkeit
optisch ableiten/erkennen kann.
Bei -c 10 (concurrency,parallele requests)
kamen nur ca 10 req/s zustande.
Da ich -c 10, für einen hohen Wert hielt, setzte ich diesen herunter
...erst bei -c 5 war das Ergebnis mit 222 req/s akzeptabel.
Achtung!
Der Focus war bei diesen Tests immer auf dem CMD-Fenster in dem der ab-Bench ablief.
Wenn man wieder -c 10 heranzieht und nach dem Start
des ab-bench sogleich das CMD-Fenster mit dem HTTP-Script-Server anclickt und so den Focus darauf legt,
ja, dann kommen auch 200 req/s zustande.
Offenbar ist die Ausführungs-/Verarbeitungsgeschwindigkeit
innerhalb der Konsole davon abhängig,
ob der Focus darauf liegt oder nicht.
Der tieferliegende Grund scheint mir das Prozess-Handling von Windows2000 zu sein. Der Versuch im TaskManager für den/die CMD-Prozesse Priorität "Echtzeit"/"HohePriorität" zuzuweisen
brachte keine Besserung. Läßt sich die CMD-Konsole mit "ständigem Focus" starten, ohne danach wirklich den Focus zu haben?
Hat jemand ähnliche Erfahrung gemacht, Tipps ?
Mfg Ronsen