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