SlideShare a Scribd company logo
Monitoring výkonu PostgreSQL
                         Prague PostgreSQL Developers' Day 2010




Monitoring výkonu PostgreSQL
      Tomáš Vondra <tv@fuzzy.cz>
         http://www.fuzzy.cz
Monitoring výkonu PostgreSQL
    Prague PostgreSQL Developers' Day 2010
Monitoring výkonu PostgreSQL
             Prague PostgreSQL Developers' Day 2010




A jedééééém ....
Monitoring výkonu PostgreSQL
                          Prague PostgreSQL Developers' Day 2010




  Můj SQL dotaz běží strašně pomalu!
Chci vědět proč a chci aby běžel rychle!




Use the „EXPLAIN ANALYZE“ force, Luke!
Monitoring výkonu PostgreSQL
                             Prague PostgreSQL Developers' Day 2010




   Server z nějakého důvodu běží pomalu!
Nemám tušení proč ale chci aby běžel rychle!




          Meditate on this, I will.
Monitoring výkonu PostgreSQL
                                   Prague PostgreSQL Developers' Day 2010




                 Cíle přednášky

Ukázat jednu z možností sledování výkonu DB serveru.


       Představit některé použitelné nástroje.


           Přihřát si vlastní polívčičku ;-)
Monitoring výkonu PostgreSQL
                                 Prague PostgreSQL Developers' Day 2010




           Cíle monitorování výkonu

Předvídat potenciální výkonnostní problémy tak aby se
             na ně dalo včas zareagovat.


            Pomáhat při řešení problémů.
Monitoring výkonu PostgreSQL
                                      Prague PostgreSQL Developers' Day 2010




               Úrovně monitoringu výkonu


    operační systém (top, dstat, iostat, …)
    
        pouze konstatuje že se něco děje
    
        nedává odpovědi na naše otázky :-(


    „vnitřnosti“ DB (systémové tabulky)
    
        potenciálně může dát odpovědi na naše otázky
    
        pg_stat_* / pg_statio_*
Monitoring výkonu PostgreSQL
                                         Prague PostgreSQL Developers' Day 2010




                         Snapshoty


    bez historických dat jsme ztraceni

    snapshot = uložená data + informace o čase

    analýza je založena na rozdílech snapshotů

    nutné jsou informace z „dobrých časů“
Monitoring výkonu PostgreSQL
             Prague PostgreSQL Developers' Day 2010




Oracle Statspack
Monitoring výkonu PostgreSQL
                                       Prague PostgreSQL Developers' Day 2010





    sada SQL a PL/SQL skriptů

    udělej snapshot dat z V$ pohledů (ulož do tabulky)
    
        data o sessions, dotazech, wait eventech
    
        ukládá do tradičních tabulek

    analýza a zobrazení dat ze snapshotů

    generování reportů
   nadstavby (AWR, Diagnostics Pack v EMC)
Monitoring výkonu PostgreSQL
    Prague PostgreSQL Developers' Day 2010
Monitoring výkonu PostgreSQL
                           Prague PostgreSQL Developers' Day 2010




Není to žádná zbrusu nová, převratná nebo
      neodzkoušená technologie ...
Monitoring výkonu PostgreSQL
                      Prague PostgreSQL Developers' Day 2010




Zdroje zajímavých dat v PostgreSQL
Monitoring výkonu PostgreSQL
                                                  Prague PostgreSQL Developers' Day 2010




                  Interní systémové katalogy


    pg_stat_* (db, bg_writer, tables, indexes, functions)
    
        způsoby čtení (sequential vs. index scans)
    
        řádky (inserted / updated / deleted / dead)
    
        vacuum / analyze
    
        funkce (calls / total time / self time)

    pg_statio_* (tables, indexes, sequences)
       heap / index blocks read
       cache hits
Monitoring výkonu PostgreSQL
                                   Prague PostgreSQL Developers' Day 2010




                      Contrib balíčky


    pg_buffercache

    pg_freespacemap

    pgstattuple

    pg_stat_statements
Monitoring výkonu PostgreSQL
                                            Prague PostgreSQL Developers' Day 2010




                     Snapshoty „by hand“
   CREATE TABLE pg_stat_tables_snapshot AS
    SELECT 'a'::text AS snap_name, now() AS snap_timestamp, *
    FROM pg_stat_all_tables WHERE (1 = 2)
   INSERT INTO pg_stat_tables_snapshot
    SELECT 'snap-a', now(), * FROM pg_stat_all_tables
   SELECT (b.seq_scan – a.seq_scan) AS seq_scan_delta, …
    FROM pg_stat_tables_snapshot AS a LEFT JOIN
         pg_stat_tables_snapshot AS b ON (a.relid = b.relid)
    WHERE a.snap_name = 'snap-a' AND b.snap_name = 'snap-b';
Monitoring výkonu PostgreSQL
                                            Prague PostgreSQL Developers' Day 2010




               Strategie vytváření snapshotů


    snapshoty jen z okamžiku problémů nestačí

    jsou třeba snapshoty pro srovnání (stejné podmínky)
    
        počet uživatelů, množství dotazů, denní doba
    
        typ zátěže (batch / OLTP)
    
        ...

    ani příliš dlouhé ani příliš krátké intervaly
       ekvidistantní (např. každých 15 minut)
       neekvidistantní (dva snapshoty 5 minut od sebe každou hodinu)
Monitoring výkonu PostgreSQL
                                              Prague PostgreSQL Developers' Day 2010




                       K čemu to všechno?


    řešení problémů – někde se něco podělalo
       nevím co se podělalo :-(
       historie mi napoví kde by mohla být chyba

    predikce
    
        nic se (zatím) nepodělalo, ale co zítra?
    
        chci průběžně analyzovat sbíraná data
    
        v případě podivností poslat varování (e-mail, SMS, ...)
Monitoring výkonu PostgreSQL
                                  Prague PostgreSQL Developers' Day 2010




Data máme – víme kde je získat a dokážeme je uložit.
                    Ale co dál?




        Lost a planet, Master Obi-Wan has.
      How embarrassing... how embarrassing.
Monitoring výkonu PostgreSQL
           Prague PostgreSQL Developers' Day 2010




Nástroje
Monitoring výkonu PostgreSQL
                                      Prague PostgreSQL Developers' Day 2010




                     Možné vlastnosti


    vytváření snapshotů

    práce se snapshoty (porovnávání, reporty, …)



    analýza snapshotů (varování, …)



    (?) centralizovaný nebo decentralizovaný

    (?) GUI a/nebo konzole (shell, PL/pgSQL)
Monitoring výkonu PostgreSQL
                            Prague PostgreSQL Developers' Day 2010




           pgstatspack
http://pgfoundry.org/projects/pgstatspack/

       Keith Pierno, Frits Hoogland
Monitoring výkonu PostgreSQL
                                       Prague PostgreSQL Developers' Day 2010




                          pgstatspack


    PL/pgSQL procedury + shell skripty

    vytváření snapshotů

    generování reportů (porovnávání snapshotů)

    primárně pro „ruční použití“
Monitoring výkonu PostgreSQL
             Prague PostgreSQL Developers' Day 2010




pgstatspack demo
Monitoring výkonu PostgreSQL
                                               Prague PostgreSQL Developers' Day 2010




             pgstatspack – výhody a nevýhody


    výhody
       jednoduchá instalace i použití
       čistě konzolové řešení (stačí psql a shell)
       to co umí umí velmi dobře (komplexní reporty)

    nevýhody
    
        pouze pro 8.1, nevyvíjí se (poslední 2.1 z 17. února 2009)
    
        práce jen se dvěma snapshoty
       necentralizované řešení (jedna DB)
Monitoring výkonu PostgreSQL
                   Prague PostgreSQL Developers' Day 2010




   pgmonitor
http://pgmonitor.sf.net

    Tomáš Vondra
Monitoring výkonu PostgreSQL
                                       Prague PostgreSQL Developers' Day 2010




              Rozdíly oproti pgstatspacku


    napsáno v PHP

    webové GUI rozhraní

    možnost centrálního uložiště

    vývoj probíhá

    podpora všech 8.x verzí
Monitoring výkonu PostgreSQL
            Prague PostgreSQL Developers' Day 2010




pgmonitor demo
Monitoring výkonu PostgreSQL
                                     Prague PostgreSQL Developers' Day 2010




            pgmonitor – plány do budoucna


    PL/pgSQL procedury pro analýzu – velmi efektivní

    lepší GUI

    inteligentnější analýza / detekce problémů

    začlenění OS-level metrik a „contrib“ metrik

    podpora partitioningu

    (?) nové zajímavé nápady

    (?) nějací dobrovolníci
Monitoring výkonu PostgreSQL
              Prague PostgreSQL Developers' Day 2010




Další nástroje ...
Monitoring výkonu PostgreSQL
                        Prague PostgreSQL Developers' Day 2010



Staplr (http://github.com/gmr/Staplr)
Monitoring výkonu PostgreSQL
                     Prague PostgreSQL Developers' Day 2010



Hyperic (http://www.hyperic.com)
Monitoring výkonu PostgreSQL
                                            Prague PostgreSQL Developers' Day 2010




       check_postgres (http://bucardo.org/wiki/Check_postgres)


   kontrolní skript

    široká škála kontrolovaných parametrů
   připraveno pro Nagios a MRTG
   napsáno v Perlu (brrrrr!)

    podpora i pro 8.4
Monitoring výkonu PostgreSQL
                Prague PostgreSQL Developers' Day 2010




     Q&A




Your father he is.

More Related Content

Similar to PostgreSQL / Performance monitoring (11)

PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
Tomas Vondra
 
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
Martin Ptáček
 
Architektura databáze Oracle
Architektura databáze Oracle
Tomas Solar
 
Jak jsme si vybrali Apache Derby
Jak jsme si vybrali Apache Derby
Lukáš Petrlík
 
20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi
Profinit
 
Větší data v klasickém webstacku - BARCAMP České Budějovice 02/2018
Větší data v klasickém webstacku - BARCAMP České Budějovice 02/2018
Collabim
 
Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012
Petr Kozlik
 
Open source technology stack
Open source technology stack
Miloslav Hašek
 
Microservices - morning talk
Microservices - morning talk
Jindřich Kubát
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2
MarketingArrowECS_CZ
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
PostgreSQL na EXT4, XFS, BTRFS a ZFS / OpenAlt
Tomas Vondra
 
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
Martin Ptáček
 
Architektura databáze Oracle
Architektura databáze Oracle
Tomas Solar
 
Jak jsme si vybrali Apache Derby
Jak jsme si vybrali Apache Derby
Lukáš Petrlík
 
20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi
Profinit
 
Větší data v klasickém webstacku - BARCAMP České Budějovice 02/2018
Větší data v klasickém webstacku - BARCAMP České Budějovice 02/2018
Collabim
 
Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012
Petr Kozlik
 
Open source technology stack
Open source technology stack
Miloslav Hašek
 
Microservices - morning talk
Microservices - morning talk
Jindřich Kubát
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2
MarketingArrowECS_CZ
 

More from Tomas Vondra (12)

CREATE STATISTICS - What is it for? (PostgresLondon)
CREATE STATISTICS - What is it for? (PostgresLondon)
Tomas Vondra
 
Data corruption
Data corruption
Tomas Vondra
 
CREATE STATISTICS - what is it for?
CREATE STATISTICS - what is it for?
Tomas Vondra
 
DB vs. encryption
DB vs. encryption
Tomas Vondra
 
PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6
Tomas Vondra
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
Tomas Vondra
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
Tomas Vondra
 
Performance improvements in PostgreSQL 9.5 and beyond
Performance improvements in PostgreSQL 9.5 and beyond
Tomas Vondra
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
Tomas Vondra
 
PostgreSQL performance archaeology
PostgreSQL performance archaeology
Tomas Vondra
 
SSD vs HDD / WAL, indexes and fsync
SSD vs HDD / WAL, indexes and fsync
Tomas Vondra
 
Replikace (CSPUG 19.4.2011)
Replikace (CSPUG 19.4.2011)
Tomas Vondra
 
CREATE STATISTICS - What is it for? (PostgresLondon)
CREATE STATISTICS - What is it for? (PostgresLondon)
Tomas Vondra
 
CREATE STATISTICS - what is it for?
CREATE STATISTICS - what is it for?
Tomas Vondra
 
PostgreSQL performance improvements in 9.5 and 9.6
PostgreSQL performance improvements in 9.5 and 9.6
Tomas Vondra
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
Tomas Vondra
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
Tomas Vondra
 
Performance improvements in PostgreSQL 9.5 and beyond
Performance improvements in PostgreSQL 9.5 and beyond
Tomas Vondra
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
Tomas Vondra
 
PostgreSQL performance archaeology
PostgreSQL performance archaeology
Tomas Vondra
 
SSD vs HDD / WAL, indexes and fsync
SSD vs HDD / WAL, indexes and fsync
Tomas Vondra
 
Replikace (CSPUG 19.4.2011)
Replikace (CSPUG 19.4.2011)
Tomas Vondra
 
Ad

PostgreSQL / Performance monitoring

  • 1. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Monitoring výkonu PostgreSQL Tomáš Vondra <[email protected]> http://www.fuzzy.cz
  • 2. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010
  • 3. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 A jedééééém ....
  • 4. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Můj SQL dotaz běží strašně pomalu! Chci vědět proč a chci aby běžel rychle! Use the „EXPLAIN ANALYZE“ force, Luke!
  • 5. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Server z nějakého důvodu běží pomalu! Nemám tušení proč ale chci aby běžel rychle! Meditate on this, I will.
  • 6. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Cíle přednášky Ukázat jednu z možností sledování výkonu DB serveru. Představit některé použitelné nástroje. Přihřát si vlastní polívčičku ;-)
  • 7. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Cíle monitorování výkonu Předvídat potenciální výkonnostní problémy tak aby se na ně dalo včas zareagovat. Pomáhat při řešení problémů.
  • 8. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Úrovně monitoringu výkonu  operační systém (top, dstat, iostat, …)  pouze konstatuje že se něco děje  nedává odpovědi na naše otázky :-(  „vnitřnosti“ DB (systémové tabulky)  potenciálně může dát odpovědi na naše otázky  pg_stat_* / pg_statio_*
  • 9. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Snapshoty  bez historických dat jsme ztraceni  snapshot = uložená data + informace o čase  analýza je založena na rozdílech snapshotů  nutné jsou informace z „dobrých časů“
  • 10. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Oracle Statspack
  • 11. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010  sada SQL a PL/SQL skriptů  udělej snapshot dat z V$ pohledů (ulož do tabulky)  data o sessions, dotazech, wait eventech  ukládá do tradičních tabulek  analýza a zobrazení dat ze snapshotů  generování reportů  nadstavby (AWR, Diagnostics Pack v EMC)
  • 12. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010
  • 13. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Není to žádná zbrusu nová, převratná nebo neodzkoušená technologie ...
  • 14. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Zdroje zajímavých dat v PostgreSQL
  • 15. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Interní systémové katalogy  pg_stat_* (db, bg_writer, tables, indexes, functions)  způsoby čtení (sequential vs. index scans)  řádky (inserted / updated / deleted / dead)  vacuum / analyze  funkce (calls / total time / self time)  pg_statio_* (tables, indexes, sequences)  heap / index blocks read  cache hits
  • 16. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Contrib balíčky  pg_buffercache  pg_freespacemap  pgstattuple  pg_stat_statements
  • 17. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Snapshoty „by hand“  CREATE TABLE pg_stat_tables_snapshot AS SELECT 'a'::text AS snap_name, now() AS snap_timestamp, * FROM pg_stat_all_tables WHERE (1 = 2)  INSERT INTO pg_stat_tables_snapshot SELECT 'snap-a', now(), * FROM pg_stat_all_tables  SELECT (b.seq_scan – a.seq_scan) AS seq_scan_delta, … FROM pg_stat_tables_snapshot AS a LEFT JOIN pg_stat_tables_snapshot AS b ON (a.relid = b.relid) WHERE a.snap_name = 'snap-a' AND b.snap_name = 'snap-b';
  • 18. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Strategie vytváření snapshotů  snapshoty jen z okamžiku problémů nestačí  jsou třeba snapshoty pro srovnání (stejné podmínky)  počet uživatelů, množství dotazů, denní doba  typ zátěže (batch / OLTP)  ...  ani příliš dlouhé ani příliš krátké intervaly  ekvidistantní (např. každých 15 minut)  neekvidistantní (dva snapshoty 5 minut od sebe každou hodinu)
  • 19. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 K čemu to všechno?  řešení problémů – někde se něco podělalo  nevím co se podělalo :-(  historie mi napoví kde by mohla být chyba  predikce  nic se (zatím) nepodělalo, ale co zítra?  chci průběžně analyzovat sbíraná data  v případě podivností poslat varování (e-mail, SMS, ...)
  • 20. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Data máme – víme kde je získat a dokážeme je uložit. Ale co dál? Lost a planet, Master Obi-Wan has. How embarrassing... how embarrassing.
  • 21. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Nástroje
  • 22. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Možné vlastnosti  vytváření snapshotů  práce se snapshoty (porovnávání, reporty, …)  analýza snapshotů (varování, …)  (?) centralizovaný nebo decentralizovaný  (?) GUI a/nebo konzole (shell, PL/pgSQL)
  • 23. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgstatspack http://pgfoundry.org/projects/pgstatspack/ Keith Pierno, Frits Hoogland
  • 24. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgstatspack  PL/pgSQL procedury + shell skripty  vytváření snapshotů  generování reportů (porovnávání snapshotů)  primárně pro „ruční použití“
  • 25. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgstatspack demo
  • 26. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgstatspack – výhody a nevýhody  výhody  jednoduchá instalace i použití  čistě konzolové řešení (stačí psql a shell)  to co umí umí velmi dobře (komplexní reporty)  nevýhody  pouze pro 8.1, nevyvíjí se (poslední 2.1 z 17. února 2009)  práce jen se dvěma snapshoty  necentralizované řešení (jedna DB)
  • 27. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgmonitor http://pgmonitor.sf.net Tomáš Vondra
  • 28. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Rozdíly oproti pgstatspacku  napsáno v PHP  webové GUI rozhraní  možnost centrálního uložiště  vývoj probíhá  podpora všech 8.x verzí
  • 29. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgmonitor demo
  • 30. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 pgmonitor – plány do budoucna  PL/pgSQL procedury pro analýzu – velmi efektivní  lepší GUI  inteligentnější analýza / detekce problémů  začlenění OS-level metrik a „contrib“ metrik  podpora partitioningu  (?) nové zajímavé nápady  (?) nějací dobrovolníci
  • 31. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Další nástroje ...
  • 32. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Staplr (http://github.com/gmr/Staplr)
  • 33. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Hyperic (http://www.hyperic.com)
  • 34. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 check_postgres (http://bucardo.org/wiki/Check_postgres)  kontrolní skript  široká škála kontrolovaných parametrů  připraveno pro Nagios a MRTG  napsáno v Perlu (brrrrr!)  podpora i pro 8.4
  • 35. Monitoring výkonu PostgreSQL Prague PostgreSQL Developers' Day 2010 Q&A Your father he is.