DB Server a SSD disky
Vladimir Macek
macek na sandbox.cz
Čtvrtek Duben 8 10:58:09 CEST 2010
On 8.4.2010 09:35, Dalibor Toman wrote:
> premyslime o upgrade DB serveru (postgres, DB na disku zabira cca
> 80GB, slouzi i jako uloziste namerenych dat - cili zapisu je dost).
> Jednou z variant, jak zvednout vykon je...
Na vasem miste bych nejdrive provedl nasledujici kroky k overeni, ze
postgres neni zbytecne brzden (pokud je mate za sebou, tak se treba bude
hodit jinym):
* Pouzijte rozumne mladou verzi db serveru, 8.3+. Prinasi mj. znacne
optimalizacni moznosti.
* Dejte postgresu dost pracovni pameti. Toto neni jednoducha
zalezitost, odkazuju na specializovane weby a skvely manual.
* Pouzijte volbu log_min_duration_statement = N pro logovani prikazu
trvajicich vice nez N milisekund. V shellu lze pak provest prikaz
EXPLAIN ANALYZE <prikaz> (pokud jde o zapisovy prikaz, spustte ho
v shellu ve vlastni transakci). Vysledkem bude takzvany query
plan. Pokud si nevite rady s jeho uzitecnosti a nenastudujete ji,
navstivte IRC kanal #postgresql na siti FreeNode. Nachazi se tam
zdaleka nejnapomocnejsi komunita, na kterou jsem kdy na Netu narazil.
Pomohli mi vytvorit konkretni INDEX pro konkretni SELECT, ktery
bych mel fakt problem vypotit a ktery 700ms prikaz zrychlil na 3ms.
V jinem pripade mi bylo doporuceno prepsat prikaz v aplikacni
vrstve, protoze kvuli zisku 20 radku jich prochazel desetitisice a
slo to udelat jinak.
Indexy na jednu stranu zabiraji misto na disku a zpomaluji zapisy
(to vam muze vadit), umi zazracne zrychlit SELECTy. Mrknete,
jestli vam zapis nezpomaluje nejaky
stary/neoptimalni/na-az-tak-potrebny index.
* V dobe mensiho provozu provedte globalni VACUUM FULL ANALYZE
(treba s odstavkou db) -- pozor, zamyka tabulky. Tim se
aktualizuji optimalizacni statistiky, odstrani se nepouzivane
radky a databaze se na disku setrese treba na polovinu i mene.
Jsou clanky na Netu tvrdici, ze jeste lepsi optimalizacni vysledky
ma vytvoreni nove databaze z dumpu. Neni duvod tomu neverit, pokud
mate tu moznost, vedle to otestujte.
* S tydenni periodou v dobe mensiho provozu provadejte VACUUM
ANALYZE. Na vse nebo jen na exponovane tabulky.
* Muze pomoci i prikaz REINDEX pro znovuvytvoreni potencialne
neoptimalnich indexu. To je na celou db relativne rychle.
Nejsem odbornikem na databaze a postgres, treba me nekdo opravi/doplni.
I na ceskem Netu jsou clanky, ktere prinaseji potrebny vhled. Anglicky
je jich mnohem vic vcetne presnych receptu.
--
\//\/\ : Vladimir Macek : http://macek.sandbox.cz : +420 608 978 164
Další informace o konferenci Linux