[Java lista] postgres gyorsítás
CoL
col at gear.hu
2009. Jan. 17., Szo, 10:37:20 CET
Szia,
chico at tisztanet.hu wrote:
> Sziasztok!
>
> Nem pontosan Java téma, de hátha tudtok segíteni.
>
> Azt szeretném kérdezni, hogy hogyan lehet meggyorsítani egy PostgreSQL
> betöltést Linux-on (CentOS).
>
> Amit használok: psql "imp-db" < dump.sql
>
> A "dump.sql"-ben insert into utasítások vannak, összesen 16 Millió (2
> GByte)
>
> 1 nap alatt sem végzett, és néztem, hogy a processor terhelés 0.2%
> fölé soha se ment (a gép nem csinál mást).
>
> Hogyan lehetne rávenni a gépet, hogy többet foglalkozzon ezzel a
> process-el és/vagy gyorsabban töltse be a dump-ot?
> (a postgres-nél a working_memory 512MByte)
először is, ha nem tudod a dump-odat copy-s parancsokra átcserélni,
akkor legalább legyen egy begin; az elején, hogy ne minden insert
utasítás 1-1 külön tranzakcióba fusson. Ez olyan 20% körül gyorsít.
De a legjobb, ha COPY -val van a dump, nem insert-el.
A masik, hogy ez a művelet nem processzor, hanem IO kérdése. A proc
ugyan mit csinálna, amikor nem számol semmit, csak file-ba írások
történnek?:) Szóval ne proci terhelést nézz, hanem IO terhelést.
Ilyen betöltésekkor érdemes a pg loggolást is kikapcsolni ha netán van,
akár a dump file elején.
Ha esetleg sok fk van, akkor azokat érdemes lehet (insert into-s dump
esetén) lekapcsolni a dump idejére.
Valamint sokat segít, ha fsync is off, a betöltés idejére, ha
garantálható, hogy nem fogja senki kihúzni a dugajból a gépet :)
Ezek az alap dolgok csa, és nyilván szituáció függő mit lehet, mit érdemes.
C.
További információk a(z) Javalist levelezőlistáról