~hruske Hruške, jabuke, jablane, čežane. » Blog Archive » Django in FastCGI
Home Contact Sitemap

Hruške, jabuke, jablane, čežane.

Ste se gdaj vprašali, zakaj Najboljšega soseda nikoli ni doma, ko pridete na obisk?

Django in FastCGI

Posted on April 27th, 2007 in django, linux, python |

Ko folk razmišlja o skupnem gostovanju, je včasih težko obiti dejstvo, da je Python razmeroma požrešen, kar se tiče porabe RAM-a. Na Webfactionu je en ukaz, s katerim lahko izračunamo, koliko RAMa posamezen program uporablja. Sam sem jo nekoliko spremenil, da prikazuje samo Python:

ps -u username -o pid,rss,command | grep -v awk | \\
  awk '/python/ {print $0 ; sum+=$2} END {print "Total", sum}'

Django lahko prek FastCGI poganjamo na dva načina, z večimi nitmi in z večimi procesi. Če ga poganjamo z večimi procesi (prefork), je izpis zgornjega ukaza sledeč:

 6646  4320 python prevoz/manage.py runfcgi method=prefork host=127.0.0.1 port=34001
 6647  3788 python prevoz/manage.py runfcgi method=prefork host=127.0.0.1 port=34001
 6648  3800 python prevoz/manage.py runfcgi method=prefork host=127.0.0.1 port=34001
 6649  9604 python prevoz/manage.py runfcgi method=prefork host=127.0.0.1 port=34001
 6650  9608 python prevoz/manage.py runfcgi method=prefork host=127.0.0.1 port=34001
 6651  8512 python prevoz/manage.py runfcgi method=prefork host=127.0.0.1 port=34001
Total 39632

Če ga poganjamo večnitno (threaded) pa sledeč:

 6747 10236 python prevoz/manage.py runfcgi method=threaded host=127.0.0.1 port=34001
Total 10236

Pri tem gre omeniti, da sem pred merjenjem trikrat pognal ukaz httrack 127.0.0.1 -c10, ki prezrcali celotno stran, projekt, ki sem ga uporabil za testiranje, pa je bil razmeroma enostaven. Django pa je bil na FastCGI priklenjen prek flup r2347 in LigHTTPd spletnega strežnika.

Z večnitnim načinom lahko tako prihranimo precej RAM-a, velja pa omeniti, da Python v osnovi ni večniten in se bo pravzaprav naenkrat obravnaval le en zahtevek, čeprav bo vmes prihajalo do preklopov med nitmi.

Comments are closed.

Komentarji so izklopljeni