Hab mal so eine Idee für eine art profiler Applikation.
Es sollen Informationen gesammelt werden von laufenden Django Instanzen.
Mögliche Informationen:
- Response Zeiten
- Speicherverbrauch
- Anzahl Request pro Stunde/Tage
- Aktive os.geteuid()
- getpass.getuser()
- os.getloadavg()
Diese Informationen sollten alle in ein und der selben DB-Tabelle gesammelt werden. So das man einen Überblick bekommt, in einem Multi-SITE_ID (Also mehrere laufende Instanzen/Prozesse) und Multi-Threaded-Umgebung
Den Speicherverbrauch ermitteln, ist allerdings IMHO nicht so leicht.
Ich hab dazu zwar in https://github.com/jedie/PyLucid-system ... manager.py mal was gemacht. Das läuft auch, aber es durchkämmt das /proc/ Verzeichnis. Ist also sehr Low-Level.
Es spuckt u.a. Informationen aus wie:
Code: Alles auswählen
total processes: 153
total treads: 282
user processes: 4
user threads: 19
filtered by user ID: 5019
current process ID: 28547
pid Peak virtual memory size Peak resident set size Threads Programm kill
28535 180552 kB 70936 kB 6 /var/www/clients/client3/web33/web/python index.fcgi
28547 306684 kB 73764 kB 6 /var/www/clients/client3/web33/web/python index.fcgi
28548 246872 kB 72448 kB 6 /var/www/clients/client3/web33/web/python index.fcgi
Process name VmPeak VmHWM
python 716.9 MB 212.1 MB
Was es nicht soll:
* Informationen sammeln, die auch in der Apache Log drin stehen oder die sowas wie Piwik liefern kann.
* die laufende Instanz sollte nicht zu sehr gebremst werden. Also möglichst wenig loggen/sammeln
Das ganze sollte nicht echtes Profiling zu Optimierungszwecke werden. Dazu gibt es schon ein paar Dinge, z.B.:
https://github.com/django-debug-toolbar ... ug-toolbar
https://github.com/django-extensions/django-extensions
siehe auch: https://code.djangoproject.com/wiki/ProfilingDjango