Próbuję zobaczyć, dlaczego moja strona django (gunicorn 4 pracowników) jest wolna pod dużym obciążeniem, zrobiłem trochę profilowania http://djangosnippets.org/snippets/186/ bez jasnej odpowiedzi, więc zacząłem niektóre testy obciążenia od zarysowanie za pomocą ab -n 1000 -c 100 http://localhost:8888/
Django, niskie żądania na sekundę z gunicorn 4 pracowników
prosty Httpreponse ("Hello world") nie pośredniej ==> 3600req/s
prosty Httpreponse ("Hello world") z middleware (buforowanym sesji uwierzytelniania buforowane) ==> 2300req/s
Prosta render_to_response, która drukuje tylko formularz (szablon buforowany) ==> 12 00req/s (czas reakcji została podzielona przez 2)
Prosty render_to_response 50 Memcache zapytaniami ==> 157req/s
Memcache zapytania powinny być znacznie szybsze niż (używam PyLibMCCache)? Czy renderowanie szablonu jest tak wolne, jak ten wynik?
Próbowałem różnych technik profilowania bez powodzenia.
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46936
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 400000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46936
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ sysctl -p
fs.file-max = 700000
net.core.somaxconn = 5000
net.ipv4.tcp_keepalive_intvl = 30
Używam Ubuntu 12.04 (6Go RAM, Core i5)
Każda pomoc proszę?
+1 za badania, które wykonałeś – Private
To zależy ... co robisz w widokach? jakie zapytania uruchamiasz? na czym je prowadzisz? – ionelmc
jest twoim memcached serwera na tym samym komputerze lub na zewnętrznym? –