PostgreSQL
From RCUB
(→PSQL komande) |
(Dodata sekcija za optimizovanje Postgresa) |
||
Line 117: | Line 117: | ||
sudo -u postgres /usr/pgsql-9.0/bin/pg_ctl reload -D /var/lib/pgsql/9.0/data/ | sudo -u postgres /usr/pgsql-9.0/bin/pg_ctl reload -D /var/lib/pgsql/9.0/data/ | ||
+ | |||
+ | ===Optimizovanje servera=== | ||
+ | |||
+ | Za izvlačenje maksimuma mogućnosti iz PostgreSQL-a poželjno je pročitati detljno ceo [http://wiki.postgresql.org/wiki/Performance_Optimization Optimization Guide]. Poglavlje [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server Tuning] se najviše tiče optimizovanja svakodnevnog rada servera i objašnjava sve tajne postgres.conf. Jedan od interesatnih članaka je [http://www.linux.com/learn/tutorials/394523-configuring-postgresql-for-pretty-good-performance ovde] a postoji i cela [http://www.packtpub.com/postgresql-90-high-performance/book knjiga]. | ||
+ | |||
+ | Moguće je dati neke osnovne preporuke za optimizovanje PostgreSQL servera. Poželjno je dodeliti serveru više memorije nego što je konfigurisano u podrazumevanim postavkama. U sledećim postavkama u tabeli, koje treba uzeti s zrncem soli, se nalazi jedan predlog postavki koji bi trebalo da omogući performantniji rad PostgreSQL servera za konfiguraciju koja bi PostgreSQL serveru ostavila 1GB radne memorije, 16GB radne memorije i poređenje sa podrazumenvanim postavkama u PostgreSQL-u 8.3: | ||
+ | |||
+ | {| class="wikitable" style="text-align:center; width:750px; height:200px;" | ||
+ | |+ postgres.conf | ||
+ | |- | ||
+ | ! | ||
+ | ! 8.3 def | ||
+ | ! 1GB | ||
+ | ! 16GB | ||
+ | ! komentar | ||
+ | |- | ||
+ | ! <code>max_connections</code> | ||
+ | | 100 || 30 || 30 || align="right" width="50%"| proceniti koliko je konekcija zaista potrebno i dodati neku rezervu | ||
+ | |- | ||
+ | ! <code>shared_buffers</code> | ||
+ | | 32MB || 256MB || 4096MB || align="right"| treba RAM/4 | ||
+ | |- | ||
+ | ! <code>effective_cache_size</code> | ||
+ | | 1000 || 128MB || 10240MB || align="right"| treba RAM/2, mada može i do RAM*3/4 | ||
+ | |- | ||
+ | ! <code>chekpoint_segments</code> | ||
+ | | 3 || 15 || 15 || align="right"| minimum 10 ako je ''write intensive'' aplikacija može i 32 | ||
+ | |- | ||
+ | ! <code>checkpoint_completion_target</code> | ||
+ | | 0.5 || 0.9 || 0.9 || align="right"| uvek se povećava na 0.9 kada se povećeva <code>chekpoint_segments</code> | ||
+ | |- | ||
+ | ! <code>default_statistics_target</code> | ||
+ | | 10 || 100 || 100 || align="right"| uvek na 100 | ||
+ | |- | ||
+ | ! <code>work_mem</code> | ||
+ | | 1MB || 4MB || 40MB || align="right"| obratiti pažnju da <code>max_connections</code>*<code>work_mem</code> bude manji od npr. RAM/8 | ||
+ | |} | ||
==Koriscenje proceduralinih jezika== | ==Koriscenje proceduralinih jezika== |