postgresql / performance monitoring
DESCRIPTION
Prezentace připravená pro konferenci Prague PostgreSQL Developers' Day 2010. Hlavním tématem je monitoring výkonu PostgreSQL databázového serveru, nástrojů které k tomu lze použít, atd. Na začátku jsou představeny základní pojmy (např. co je to snapshot), a poté je předvedeno několik užitečných nástrojů (jeden z nich vyvíjím já).TRANSCRIPT
![Page 1: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/1.jpg)
Monitoring výkonu PostgreSQLTomáš Vondra <[email protected]>
http://www.fuzzy.cz
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 2: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/2.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 3: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/3.jpg)
A jedééééém ....
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 4: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/4.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 5: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/5.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 6: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/6.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 7: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/7.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 8: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/8.jpg)
Ú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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 9: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/9.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 10: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/10.jpg)
Oracle Statspack
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 11: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/11.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 12: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/12.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 13: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/13.jpg)
Není to žádná zbrusu nová, převratná nebo
neodzkoušená technologie ...
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 14: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/14.jpg)
Zdroje zajímavých dat v PostgreSQL
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 15: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/15.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 16: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/16.jpg)
Contrib balíčky
pg_buffercache
pg_freespacemap
pgstattuple
pg_stat_statements
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 17: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/17.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 18: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/18.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 19: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/19.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 20: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/20.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 21: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/21.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
Nástroje
![Page 22: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/22.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 23: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/23.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
pgstatspack
http://pgfoundry.org/projects/pgstatspack/
Keith Pierno, Frits Hoogland
![Page 24: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/24.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 25: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/25.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
pgstatspack demo
![Page 26: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/26.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 27: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/27.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
pgmonitor
http://pgmonitor.sf.net
Tomáš Vondra
![Page 28: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/28.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 29: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/29.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
pgmonitor demo
![Page 30: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/30.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 31: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/31.jpg)
Další nástroje ...
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 32: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/32.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
Staplr (http://github.com/gmr/Staplr)
![Page 33: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/33.jpg)
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010
Hyperic (http://www.hyperic.com)
![Page 34: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/34.jpg)
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 PostgreSQLPrague PostgreSQL Developers' Day 2010
![Page 35: PostgreSQL / Performance monitoring](https://reader034.vdocument.in/reader034/viewer/2022042503/549231c4ac795916288b46f1/html5/thumbnails/35.jpg)
Q&A
Your father he is.
Monitoring výkonu PostgreSQLPrague PostgreSQL Developers' Day 2010