Django virtualenv setup

Imamo aplikacije koje koriste različite verzije Djanga, kako napraviti da se sve vrte na istom serveru?
Pomoću virtualenv softvera.

Instaliramo python setuptools.

$ yum install python-setuptools

Nakon što smo instalirali setuptools, instaliramo virtualenv.

$ easy_install virtualenv

Preselimo se u direktorij gdje cemo pospremati virtualne instalacije.

$ cd ~/webapps/venv
$ virtualenv --no-site-packages projekt.com
$ source projekt.com/bin/activate
(projekt.com)$ pip install django
(projekt.com)$ deactivate

Ako trebamo verziju djanga koju nije moguce instalirati preko pipa, onda je procedura da se instalacijski paket skine sa interneta i standardnom procedurom instalira u virtualno okružje.
npr.

$ source projekt.com/bin/activate
(projekt.com)$ pip install django
(projekt.com)$ wget https://www.djangoproject.com/download/1.5c1/tarball/
(projekt.com)$ tar xzvf Django.tar.gz
(projekt.com)$ cd Django
(projekt.com)$ python setup.py install

Postgres Performance

Vrijedi za PG v9.2
CREATE extension pg_stat_statements;

Ukljući sakupljane statistike o upitima.

SELECT (total_time / 1000 / 60) as total_minutes,
       (total_time/calls) as average_time,
       query
FROM pg_stat_statements
ORDER BY 1 DESC
LIMIT 100;

Upit prikazuje:
1. Koliko se dugo upit odvijao na serveru (ukupno)
2. Koliko se prosjećno upit odvijao na serveru (milisekunde)
3. Sam upit

SELECT sum(heap_blks_read) as heap_read,
       sum(heap_blks_hit) as heap_hit,
       (sum(heap_blks_hit) - sum(heap_blks_read)) / sum(heap_blks_hit) as ratio
FROM pg_statio_user_tables;

Upit prikazuje Cache hit rate, 99% je ciljano.

SELECT relname,
       100 * idx_scan / (seq_scan + idx_scan) percent_of_times_index_used,
       n_live_tup rows_in_table
FROM pg_stat_user_tables
WHERE seq_scan + idx_scan > 0
ORDER BY n_live_tup DESC;

Korištenje Indexa na tablici. 99% na tablici sa preko 10.000 redova, sve ispod toga treba istražiti i dodati nove indexe.

Izvori:
http://craigkerstiens.com/2012/10/01/understanding-postgres-performance/
http://craigkerstiens.com/2013/01/10/more-on-postgres-performance/