PostgreSQL v prostředí rozsáhlých IPTV platforem

Podobné dokumenty
Bi-Direction Replication

Použití PostgreSQL v. P2D Martin Swiech

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Datová úložiště v roce 2017 aneb jak si vybrat to správné?

František Kysela SE Datacenter

Moderní privátní cloud pro město na platformě OpenStack a Kubernetes

P2D Život postgresového serveru bez ručních zásahů. Jakub Jedelský

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

SSD vs. HDD / WAL, indexy a fsync

Praha, Martin Beran

Integrace formou virtualizace

Alternativy k SAP HANA appliance? Představení možnosti TDI a cloudové infrastruktury

DataDomain pod drobnohledem

Realizace datového centra kraje Vysočina Regionální SAN kraje Vysočina

CSPUG 2011-květen. GridSQL a pg-pool II. Vratislav Beneš benes@optisolutions.cz

Specifikace minimální konfigurace zboží Příloha č. 1. Specifikace minimálních požadavků na vybrané parametry zboží

Softwarově definovaná úložiště a jejich využití

FLASH NOVÉ HRANICE DOSAŽITELNÉHO

Hyperkonvergovaná řešení jako základní stavební blok moderního IT

O Apache Derby detailněji. Hynek Mlnařík

Část 1. Technická specifikace. Posílení ochrany demokratické společnosti proti terorismu a extremismu

Výkonnostní archeologie

Windows Server Novinky. Petr Špetlík Cloud & Server PTA

Technické a dodací podmínky

Odbor informatiky a provozu informačních technologií

Příloha č. 1 k Č.j.: OOP/10039/ Specifikace zařízení

BigData. Marek Sušický

IBM Tivoli Storage Manager 6.2 a IBM Tivoli Storage Manager FastBack 6.1.1

Tabulka splnění technických požadavků

aniel Dvořák, Martin Mičan Liberec Windows Server 2012/R2 Migrační scénáře

Technické a dodací podmínky

Reporting a Monitoring

Sledování výkonu aplikací?

Specifikace předmětu veřejné zakázky

Administrace, Monitoring. Pavel Stěhule P2D2, Praha 2016

Příloha č. 1 k čj.: 1/120/ Technická specifikace Zajištění HW a dlouhodobé podpory infrastruktury Intel pro VoZP ČR

Petr Vlk KPCS CZ. WUG Days října 2016

Efektivní ochrana dat ve virtualizovaném prostředí. Marek Bradáč

Healtcheck. databáze ORCL běžící na serveru db.tomas-solar.com pro

DATOVÁ ARCHIVACE. Principy datové archivace a její výhody při migraci na SAP HANA. Štěpán Bouda Business Consultant

Město Varnsdorf, nám. E. Beneše 470, Varnsdorf, Česká republika SPECIFIKACE

Konfigurace PostgreSQL a základy "tuningu"

DEDIKOVANÉ A MANAGED SERVERY GREENHOUSING JEDNODUCHÁ CESTA K PROFESIONÁLNÍMU SERVERHOSTINGU A VIRTUALIZACI

Patroni. The real life experience and migration path. Jan Tomsa

Zvýhodněné ceny: 3.999, * (6x 1TB SATA) nebo , * (12x 2TB SATA) Pouze do 30. dubna 2011!

Technická specifikace HW pro rok 2012

Oracle Exalogic: Ideální platforma pro Cloud Computing

Centralizace aplikací ve VZP

Nimbus Data All Flash Systems

Brno. 30. května 2014

Příloha č. 2A Zadávací dokumentace k Veřejné zakázce Dodávka technologického řešení pro Geoportál

Softwarové balíky & bundles

MARIE PACS S PACSem hezky od podlahy když se data sypou!

ReDefine Midrange Storage VNX/VNXe. Václav Šindelář, EMC

IT 3. Projekt centrálního zálohovacího systému v ČSOB Pojišťovně. Michal Mikulík. špička v každém směru

Administrace a Enterprise vlastnosti. RNDr. Ondřej Zýka

Hardwarové a softwarové požadavky HELIOS Green

Servery Incad, stav k

Copyright 2012 EMC Corporation. All rights reserved.

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Služby datového centra

O nás. UPC Business. Kontaktní linka (Po - Pá: 8:00-19:00) Klientská linka (Po - Pá: 8:00-19:00)

Diskové pole IBM Storwize V7000 Unified

NSS - Cache 5. LECTURE MARTIN TOMASEK

Úvod do počítačových sítí

České Budějovice. 2. dubna 2014

HW Diskové pole - 1KS

VÝZVA K PODÁNÍ NABÍDKY. Ukládání, zálohování a archivace dat

Tabulka splnění technických požadavků

Řešení EMC pro VMware

Příprava k certifikaci , TS: Windows 7, Configuring

ČÁST III. zadávací dokumentace technické podmínky ČÁST 1 veřejné zakázky

Copyright 2012 EMC Corporation. All rights reserved.

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Služby datového centra

Jak ochráníte svoji síť v roce 2015? Michal Motyčka

Najde si Software Defined Storage své místo na trhu?

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

Vlastnosti Xen na univerzitě. Michal Švamberg

Zálohování dat a disaster recovery

Jaké zvolit Softwarově definované datové úložiště?

Systémová administrace portálu Liferay

Jan Tkáč AutoCont Privátní cloud

VOIPEX Pavel Píštěk, strategie a nové Sdílet projek ts y práv, I né PEX inf a.s orm. ace se správnými lidmi ve správný čas

Co by kdyby? Simulační prostředí pro BIG data v energetice. Filip Procházka, Masarykova Univerzita, Mycroft Mind, a.s. filip.prochazka@gmail.

SSD akcelerátor v PCIe slotu. Až 25 SSD/SAS/NL-SAS disků na jeden server

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS pavel@blahovec.cz

prostředí IDS 11.5 na Martin Mikuškovic, ICZ a. s

Optimalizace dotazů a databázové transakce v Oracle

Bezpečnostní mechanismy serverové infrastruktury

PostgreSQL jako platforma pro datové sklady

Název prezentace 1. Poskytovatel garantovaných služeb NDC včetně kybernetické bezpečnosti ve státní správě

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Zřízení technologického centra ORP Dobruška

CHARAKTERISTIKA VEŘEJNÉ ZAKÁZKY

Státní ICT jak to zvládáme na NKÚ. Jan Mareš

IBM Storwize Rapid Application Storage. Ondřej Bláha. CEE+R CoP Tivoli Storage Team Leader

Technická specifikace vymezené části 1 SERVER

Transkript:

PostgreSQL v prostředí rozsáhlých IPTV platforem

Kdo jsme? Vyvíjíme a provozujeme IPTV a OTT řešení Klíčový zákazníci O2 (O2TV, ivysílání České Televize) Orange T-Mobile Swisscom Broadcast End-to-end multiscreen řešení vyvinuté in-house STB, Mobile, PC, SmartTV Streamers, Video storage Media aquisition Middleware

PostgreSQL v nangu.tv Hlavní databázová technologie Používáme od prvních verzí platformy, začátky na PostgreSQL 8.0 60 provozních instancí PostgreSQL Většina PostgreSQL 9.4, částečně ještě PostgreSQL 9.2 Připravujeme se na přechod na PostgreSQL 9.6 Middleware billing, provisioning, reporting Backend informace o uložení dílčích video chunků, metadata, video objekty Keystore uložení klíčů pro DRM Oauth centrální SSO, repozitář aplikací, tokeny

Dopady růstu zákazníků na DB Původní zákazníci cca 20 tisíc uživatelů, jedno datové centrum, databáze běží na serverech společně s aplikacemi, stovky TPS Nyní zákaznické báze o velikosti stovek tisíc uživatelů Dedikované databázové servery pro každou z aplikací 20,000 transakcí za sekundu ve špičkách Write heavy - aplikace 1,2TB zápisů denně Vysoká citlivost na latence Clustery s geografickou redundancí Plány na 1,000,000 uživatelů v blízké budoucnosti Potřeba škálovat do šířky

Evoluce DB stacku Přechod na dedikované DB servery, každá aplikace má samostatný cluster RAID1 RAID10 enterprise SSD Upgrade a optimalizace DRBD Přechod od DRBD ke asynchronní streaming replikaci Přechod na PostgreSQL 9.4 Samostatné repliky pro analytické dotazy Zavedení centrálního connection poolingu

Optimalizace aplikací Optimalizace klíčových dotazů (low-hanging fruit) Zavedení lepšího cachování na všech přístupových úrovních Odsun netransakčních dat do vhodnějších úložišť Cassandra úložiště aplikačních logů, obrázků Elasticsearch search API RabbitMQ Messaging Syslog logování STB boxů Partitioning dat Zavedení connection poolů pro aplikace Lepší využití prepared statementů Využití partial indexů

Problémy spojené s růstem báze Problémy s lock contention (spin locks) Patch Use SnapshotDirty rather than an active snapshot to probe index endpoints. pro 9.2 FOR KEY SHARE and FOR NO KEY UPDATE v 9.3 Další optimalizace v 9.4, 9.5 Latence způsobené Extension locks Problémy s IO spiky check pointu Problémy se statistikami Komplikovaná údržba DB

Na cestě k 1,000,000 uživatelů Rozšíření používání partitioningu Implementace shardingu Rozdělení monolitických aplikací na menší samostatné servisy Model Eventual consistency Analytické dotazy směřovány na samostatnou repliku Ochrana proti Thundering herd

Hardware X10DRH-CLN4 2x Intel E5-2650v4 256 GB RAM 2x 300GB C10K900 SAS OS a logy Intel SSD DC P3700 Series (PCI-E, NVMe) (optional) 2x 300GB C10K900 SAS WAL

Konfigurace PostgreSQL max_connections = 120 shared_buffers = 5GB temp_buffers = 128MB work_mem = 12MB (22MB) maintenance_work_mem = 6400MB effective_io_concurency = 32 checkpoint_segments = 256 checkpoint_timeout = 15min checkpoint_completion_target = 0.9 hot_standby_feedback = off stats_temp_directory = '/mnt/pg_stat_tmp' synchronous_commit = on autovacuum_max_workers = 6 autovacuum_naptime = 6 random_page_cost = 1.5 effective_cache_size = 200GB geqo_threshold = 20 log_min_duration = 500 log_checkpoints = on log_line_prefix = '%t:%r:%u@%d:[%p]: ' log_lock_waits = on log_temp_files = 0 track_activity_query_size = 10240 deadlock_timeout = 2s restart_after_crash = off

Konfigurace OS Debian GNU/Linux Jessie, Kernel 3.16 Ext4 s noatime Sysctl vm.dirty_background_ratio = 5 vm.dirty_ratio = 10 vm.swapiness = 1 net.ipv4.tcp_keepalive_time=300 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=10

Vysoká dostupnost Původní řešení nad Pacemaker/Corosync DRBD resource síťový RAID1 Filesystem resource Plovoucí IP adresa LSB PostgreSQL Nevýhody: Dlouhý čas failoveru (zejména při nekorektním ukončení primary node) DRBD nad SSD disky výrazně degraduje výkon (značné zlepšení DRBD 8.4.3) Pro více jak 2 nody příliš komplikovaná konfigurace Cluster musí být v jednom L2 segmentu

Pacemaker se Streaming replikací Odpadá overhead DRBD Rychlejší failover Bezproblémové zapojení více jak 2 nodů Pacemaker pgsql resource (nebo PAF) Slave nodes lze využít v hot standby režimu pro offload části čtecích dotazů Stále nutnost provozu na společném L2 segmentu Problémy při vyšších latencích mezi nody Situace s balíčkováním v Debianu není ideální

Patroni a HAProxy Patroni bootstrap, monitoring, failover Consul quorum, distributed configuration store HAProxy monitoruje stav jednotlivých nodes přes patroni, směřuje provoz na aktuální master node Tolerantní vůči vyšším latencím mezi nody Není závislé na jedom L2 segmentu a společné VIP adrese

PgPool-II slepá cesta Vysoké HW nároky (ve srovnání s pg bouncerem) Nepodporuje transaction/statement pooling Značná degradace výkonu při použití JDBC Nepodporuje multistatement queries Loadbalancing aplikace využívající JDBC/Hibernate přinášela řadu problémů Těžkopádná konfigurace

Connection pooling - pgbouncer Pro backend connection pool na DB serverech či dedikovaných poolerech Původních 400 connections zredukováno na 50 Použití v transaction režimu Snížení zátěže DB o 1/5 Minimální paměťové a CPU nároky Možnost aktivace rezervního poolu při překročení nastaveného času odezvy Velmi dobrá dokumentace a tooling

Údržba - Autovacuum Pro malé a statické tabulky defaultní nastavení Pro často modifikované tabulky nastavení per tabulka alter table T set (autovacuum_vacuum_cost_delay = 10); alter table T set (autovacuum_vacuum_cost_limit=1000); alter table T set (autovacuum_vacuum_scale_factor=0.02); alter table T set (autovacuum_analyze_scale_factor=0.01); Stále je však nutné příležitostné provedení VACUUM FULL Pro často modifikované tabulky je finálním řešením partitioning

Údržba - reindexace Od 9.2 podpora CREATE INDEX Concurrently, nad 9.2 ale problémy se zámky na extrémně často modifikovanými tabulkami Od 9.4 již bez problémů možné prováděť za plnného provozu Je třeba mít dostatek prostoru pro další kopii indexu create index CONCURRENTLY tmp_tabulka_klic on chunk using btree (chunk_day); begin; drop index tabulka_klic; alter index tmp_tabulka_klic rename to tmp_tabulka; commit;

Monitoring - Grafování Na DB serverech collectd pro sběr dat Data přeposílání na centrální servery kde jsou uloženy v RRD Jednoduchý frontend Collection3/Cacti Frontend je pomalý, z povahy RRD data postupně méně přesná Postupný přechod na InfluxDB/Grafana Zvažujeme Prometheus

Monitoring Grafované metriky Počet commitů a rollbacků za sekundu Pro klíčové tabulky počet zvakouvaných řádek za sekundu Statistika bg writeru Utilizace autovacuum workers Počet connections Zpoždění streaming replikace Velikost klíčových tabulek Celková disk usage Disk IOPS, Latency, Traffic, percent utilization Síťový bandwitdh Load, CPU, Swap, vmstat

Vyhodnocení logů Analyzátor logů pgbadger Vyhodnocení na týdenní bázi, při řešení incidentů Častější kontroly po upgradech DB, aplikačního SW Nejčastější Slow queries Nejdelší individuální slow queries Zámky Checkpointy Temp files Centralizované logování přes ELK

Alerting Přecházíme na Icingu s distribuovanou architekturou Aktuálně většina instalací nad Nagios3 Několik metod alertingu SMS, E-mail, Jabber konference, Kibana dashboard Historie uložená v Elasticsearch, frontend Kibana Většinu sledovaných metrik přes check_posgres

Alerting - metriky Idle in transactions Last vacuum klíčových tabulek Last analyze klíčových tabulek Velikost tabulek Příliš dlouhé queries Počet zámků Počet konexí / backendů Table bloat Index bloat Stav replikace Replikační zpoždění Maximální čekání v pgbounceru Počet čekajících klientů v pgbounceru

Zálohování Základní metoda pg_dump Zálohy v custom formátu na denní bázi Throttling - nice, ionice, bwlimit Přes rsync na dedikovaný server Pro velké platformy používáme PG Barman Kontinuální záloha přes WAL archiving PITR až na úrovni konkrétního XID Zálohování po síťi či na dedikovanou SAN Monitoring stavu zálohování přes Nagios/Icinga Připravujeme přechod na 2.0 a zálohování pře Streaming replikaci Nepodceňovat pravidelné testování záloh

Upgrade - Scénář Obvyklá doba integrace nové verze PostgreSQL 6 měsíců Zajištění kompatibility s novou verzí, výměna JDBC driverů, příprava balíčků s pluginy Testovací provoz v interním QA funkční a integrační testy Zátěžové testy Nasazení na staging platformy zákazníků Nasazení na menší produkční platformy Nasazení na klíčové produkční platformy

Upgrade - Zátěžové testy Jako zdroj dat použity provozní data velkých platforem Identické HW prostředí jako v produkci Stav databáze převzat přímo z produkce (data z barmana), nikoliv čistý dump Custom aplikace na přehrávání aplikačních logů Přehrávání provozu zachyceného pgsharkem Zrychlené přehrání provozu pro simulaci zvýšené záťěže Pro některé aplikace syntetické scénáře pro Gattling Vyhodnocujeme pg_stat_statements, pg_buffercache, slow queries, locks, temp files, errors Vyhodnocují se aplikační latence a chyby

Upgrade Produkční platformy Simulace upgrade v lokálním labu Získání dat produkce z barmana (nikoliv čistý dump/restore) Stejná verze, konfigurace a prostředí jako na produkci Sleduje se celkový čas, obsazené místo v průběhu i po upgrade, chyby Záloha pro případný rollback a rollback scénář Na produkci následně upgrade přes pg_upgrade s využitím hardlinků Nasazení optimalice konfigurace podle výsledků záťěžových testů Spuštění analyze nad všemi tabulkami Aktuálně testujeme bezvýpadkové upgrady přes pg_logical

Otázky Otázky?

We are hiring! Roman Fišer 2 nd level Support Team Leader roman.fiser@nangu.tv nangu.tv, a.s. U Plynarny 1002/97 101 00 Praha 10 Czech Republic www.nangu.tv