SlideShare a Scribd company logo
1 of 60
Download to read offline
August 2018
An Introduction to Performance
Monitoring for PostgreSQL
Sebastian Insausti
Presenter
sebastian@severalnines.com
Copyright 2017 Severalnines AB
I'm Jean-Jérôme from the Severalnines Team and
I'm your host for today's webinar!
Feel free to ask any questions in the Questions
section of this application or via the Chat box.
You can also contact me directly via the chat box
or via email: info@severalnines.com during or
after the webinar.
Your host & some logistics
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
Automation & Management
Deployment
● Deploy a Cluster in Minutes
● On-Prem or Cloud (AWS/Azure/Google)
Monitoring
● Systems View with 1 sec Resolution
● DB / OS stats & Performance Advisors
● Configurable Dashboards
● Query Analyzer
● Real-time / historical
Management
● Backup Management
● Upgrades & Patching
● Security & Compliance
● Operational Reports
● Automatic Recovery & Repair
● Performance Management
● Automatic Performance Advisors
Copyright 2017 Severalnines AB
Supported Databases
Copyright 2017 Severalnines AB
Our Customers
Poll 1 - What databases do you currently
use?
Copyright 2018 Severalnines AB
(select one or more)
● PostgreSQL
● MySQL/MariaDB
● MongoDB
● Oracle and/or MS SQL
● Other
August 2018
An Introduction to Performance
Monitoring for PostgreSQL
Sebastian Insausti
Presenter
sebastian@severalnines.com
Agenda
● PostgreSQL architecture overview
● Key PostgreSQL metrics and their meaning
○ Troubleshooting performance problems in production
○ Tuning
● Performance monitoring tools
● Impact of monitoring on performance
● How to use ClusterControl to identify performance issues
○ Demo
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
PostgreSQL architecture overview
Fundamental Parts
● Processes
○ Postgres Server Process
○ Backend Process
○ Background Process
○ Replications Associated Process
○ Background Worker Process
● Memory
○ Local memory area
○ Shared memory area
● Disk
○ Data Files
○ WAL Files
○ Log Files
Processes
Processes
Memory
Disk
Parts Working Together
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
Key PostgreSQL metrics and their meaning
System Monitoring
● CPU Usage: Percentage use of CPU (%cpu)
● RAM Usage: Amount of free RAM memory (mem free)
● Network: Packet loss or high latency (packet time or
packet loss)
● Disk Usage: Percentage use of disk (use%)
● Disk IOPS: Read or write per second, and IO wait.
(r/s, w/s, iowait)
● SWAP usage: Amount of free SWAP memory
(swap free)
Tuning instance vs workload
● Instance Tuning
○ Instance parameters (OS, Database)
● Workload Tuning
○ Queries, Schema
Types of Instance Metrics
● Caching
● Connections
● Checkpoints
● Commits
● Replication
● Vacuum
Caching (1 of 3)
Cache hits vs disk hits: Disk access is expensive, we want to fetch most
of the data in memory.
Check queries to confirm if you are using cache or disk (EXPLAIN
ANALYZE BUFFER).
Related parameters:
● shared_buffers: The amount of memory that the database server
uses for shared memory buffers. If this value is too low, the
database would use more disk, which would cause more slowness.
● work_mem: Amount of memory used by the internal operations of
ORDER BY, DISTINCT and JOIN before writing to the temporary files on
disk. If this value is too low, the database would use more disk.
● temp_buffers: Used to store the temporary tables used in each session.
This parameter sets the maximum amount of memory for this task.
Caching (2 of 3)
Caching (3 of 3)
● maintenance_work_mem: Maximum memory that an operation like
Vacuuming, adding indexes or foreign keys can consume.
● effective_cache_size: Used by the query planner to take into account
plans that may or may not fit in memory. A high value makes it more
probable that index scans are used and a low value makes it more
probable that sequential scans will be used.
Connections
Amount of connections: Create a baseline and check for odd patterns.
○ Increasing: Bad use of connection pooling, locking, increase of activity.
○ Decreasing: Application problem , networking issue.
State of connections: Search for queries in a particular state. How we
manage transactions in our applications can impact here.
Related parameters:
● max_connections: This parameter determines the maximum number
of simultaneous connections to our database.
Checkpoints (1 of 2)
Checkpoints are points in the sequence of transactions at which all data files
have been updated with all information written before that checkpoint.
In the event of a crash, the crash recovery procedure looks at the latest
checkpoint record to determine the point in the log (known as the redo
record) from which it should start the REDO operation.
Checkpoint frequency: Frequency impacts disk I/O performance.
Checkpoints (2 of 2)
Related parameters:
● Checkpoint_timeout: Maximum time between automatic WAL
checkpoints, in seconds.
● max_wal_size: Maximum size that the WAL is allowed to grow between
the control points.
● min_wal_size: When the WAL file is kept below this value, it is recycled for
future use at a checkpoint, instead of being deleted.
● wal_sync_method: It is used to force WAL updates to disk.
● wal_buffers: Amount of shared memory used for WAL data that has not
yet been written to disk.
High number of commits: Can be caused by inefficient bulk loads. Check
workload and what have changed.
Related parameters:
● synchronous_commit: It specifies if the transaction commit will wait for
the WAL records to be written to disk before the command returns a
"success" indication to the client.
Possible values: on, remote_apply, remote_write, local and off.
Commits (1 of 2)
[root@postgres1 /]# ./pgbench -c50 -N -Upgbtest pgbtest
Commits (2 of 2)
synchronous_commit TPS
on (default) 679.942166
off 913.768318
local 778.297985
remote_write 719.684452
remote_apply 630.358726
Lag and state: The key metrics to monitor here would be the lag and the
replication state.
● Check for networking issues.
● Check for resources or underdimesioning issues.
Related parameters:
● max_wal_senders: It specifies the maximum number of concurrent
connections from standby servers or streaming base backup clients. The
parameter cannot be set higher than max_connections.
Replication
Vacuum (1 of 3)
Vacuum process: It is responsible for several maintenance tasks in the database,
one of them recovering storage used by dead tuples. If the VACUUM is taking too
much time or resources, it means that we must do it more frequently
To monitor the vacuum process, check for dead tuples and last time vacuum
execution. We have this information in the pg_stat_user_tables:
SELECT relname, n_dead_tup, last_autovacuum FROM pg_stat_user_tables;
relname | n_dead_tup | last_autovacuum
-------------+------------------+-------------------------------
setups | 343688 | 2018-08-15 05:55:30.309274+00
users | 234865 | 2018-08-15 21:46:41.015965+00
Vacuum (2 of 3)
If the autovacuum process is not running:
● Check process on the operating system:
[root@postgres1 /]# ps aux |grep autovacuum
postgres 283 0.0 0.8 435340 8768 ? Ss 00:44 0:01 postgres: autovacuum launcher process
● Check autovacuum status on the database:
SELECT name, setting FROM pg_settings WHERE name='autovacuum';
name | setting
------------+---------
autovacuum | on
(1 row)
Vacuum (3 of 3)
Related parameters:
● autovacuum_work_mem: It specifies the maximum amount of memory
to be used by each autovacuum worker process. It defaults to -1,
indicating that we are using maintenance_work_mem.
Check Error Log: Check your log for errors like ‘FATAL’ or ‘deadlock’, or even
for common errors for proactive maintenance.
In general, the error messages contain a description of the issue, detailed
information, and a hint.
Examples:
2018-08-19 02:06:28.053 UTC [28856] FATAL: password authentication failed
for user "username"
2018-08-19 01:59:02.998 UTC [28789] ERROR: duplicate key value violates
unique constraint "sbtest21_pkey"
Monitoring the Error Log (1 of 2)
Monitoring the Error Log (2 of 2)
2018-08-18 12:56:38.520 -03 [1181] ERROR: deadlock detected
2018-08-18 12:56:38.520 -03 [1181] DETAIL: Process 1181 waits for ShareLock on transaction 579; blocked
by process 1148.
Process 1148 waits for ShareLock on transaction 578; blocked by process 1181.
Process 1181: UPDATE country SET population=18886001 WHERE code='AUS';
Process 1148: UPDATE country SET population=15864001 WHERE code='NLD';
2018-08-18 12:56:38.520 -03 [1181] HINT: See server log for query details.
2018-08-18 12:56:38.520 -03 [1181] CONTEXT: while updating tuple (0,15) in relation "country"
2018-08-18 12:56:38.520 -03 [1181] STATEMENT: UPDATE country SET population=18886001 WHERE
code='AUS';
2018-08-18 12:59:50.568 -03 [1181] ERROR: current transaction is aborted, commands ignored until end of
transaction block
Patterns: Check the patterns of the queries. Differences in time or frequency.
Operation: If you have a lot of reads, consider sending to a slave.
Locks or indexes: Understand how locking works, and if there are deadlocks.
Look for unindexed queries or unused indexes.
Queries
● There are several types of locks.
● The important thing about them, is how they conflict with each other.
Locks
Queries
Slow queries:
● Resources: Check for load somewhere, high CPU, or swapping.
● Inefficient plan: Check for using correct indexes, bloat or out of date
statistics.
● Locks: Check for queries waiting for another query.
Related parameters:
● default_statistics_target: PostgreSQL collects statistics from each of
the tables to decide how queries will be executed on them. This value set
the number of rows to be inspected by ANALYZE process.
Queries
world=# EXPLAIN SELECT * FROM city t1,country t2 WHERE id>100 AND t1.population>700000 AND t2.population<7000000;
QUERY PLAN
--------------------------------------------------------------------------
Nested Loop (cost=0.00..734.81 rows=50662 width=144)
-> Seq Scan on city t1 (cost=0.00..93.19 rows=347 width=31)
Filter: ((id > 100) AND (population > 700000))
-> Materialize (cost=0.00..8.72 rows=146 width=113)
-> Seq Scan on country t2 (cost=0.00..7.99 rows=146 width=113)
Filter: (population < 7000000)
(6 rows)
Queries
world=# EXPLAIN ANALYZE SELECT * FROM city t1,country t2 WHERE id>100 AND t1.population>700000 AND t2.population<7000000;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.00..734.81 rows=50662 width=143) (actual time=0.040..22.066 rows=51100 loops=1)
-> Seq Scan on city t1 (cost=0.00..93.19 rows=347 width=31) (actual time=0.025..0.581 rows=350 loops=1)
Filter: ((id > 100) AND (population > 700000))
Rows Removed by Filter: 3729
-> Materialize (cost=0.00..8.72 rows=146 width=112) (actual time=0.000..0.010 rows=146 loops=350)
-> Seq Scan on country t2 (cost=0.00..7.99 rows=146 width=112) (actual time=0.005..0.053 rows=146 loops=1)
Filter: (population < 7000000)
Rows Removed by Filter: 93
Planning time: 0.123 ms
Execution time: 24.052 ms
(10 rows)
world=# EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM city t1,country t2 WHERE id>100 AND t1.population>700000 AND t2.population<7000000;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.00..734.81 rows=50662 width=143) (actual time=0.034..21.384 rows=51100 loops=1)
Buffers: shared hit=37
-> Seq Scan on city t1 (cost=0.00..93.19 rows=347 width=31) (actual time=0.025..0.637 rows=350 loops=1)
Filter: ((id > 100) AND (population > 700000))
Rows Removed by Filter: 3729
Buffers: shared hit=32
-> Materialize (cost=0.00..8.72 rows=146 width=112) (actual time=0.000..0.010 rows=146 loops=350)
Buffers: shared hit=5
-> Seq Scan on country t2 (cost=0.00..7.99 rows=146 width=112) (actual time=0.005..0.054 rows=146 loops=1)
Filter: (population < 7000000)
Rows Removed by Filter: 93
Buffers: shared hit=5
Planning time: 0.134 ms
Execution time: 23.881 ms
Queries
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
Performance monitoring tools
Poll 2 - What tools do you use to monitor
PostgreSQL?
Copyright 2018 Severalnines AB
(select one or more)
● On-prem (Nagios, Zabbix)
● SaaS solution (DataDog, NewRelic)
● Postgres centric (Postgres Enterprise Manager, pgwatch2, …)
● Polyglot (ClusterControl)
● Other
Built-in
● Error Log
Automating some monitoring of the error log, looking
for key words like FATAL, ERROR or DEADLOCK is really
useful.
● Statistics collector
The collector can count accesses to tables and indexes
in both disk-block and individual-row terms, tracks the
total number of rows in each table, and information
about vacuum and analyze actions for each table.
Contributed / External
● pg_stat_statements
It help us to know the query profile of your database.
It tracks all the queries that are executed and stores a
lot of useful statistics in a table called
pg_stat_statements.
● pg_stat_plans
This builds on pg_stat_statements and records query
plans for all executed queries.
Contributed / External
● pgBadger
Performs an analysis of PostgreSQL logs and displays
them in an HTML file.
pgBadger is able to autodetect your log file format.
Parses huge log files as well as gzip compressed files.
Contributed / External
● pg_buffercache
Allows to check what's happening in the shared buffer
cache in real time, showing how many pages are
currently held in the cache.
● pgstattuple
Generates statistics for tables and indexes, shows how
much space used by each table/index is consumed by
live tuples, deleted tuples or how much unused space is
available in each relation.
Operating System
● top: Check CPU, Memory, Load and more
● ps: Check processes running
● free: Check memory (RAM & SWAP)
● netstat / ping / ifconfig: Check the network state
● iostat / iotop: Check the Disk access
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
External Performance Monitoring Tools
Nagios is an Open Source system and network
monitoring application.
You can monitor network services, host resources,
and more.
For monitoring PostgreSQL you can use:
● Plugins
● Create your own script
Nagios
Zabbix is a software that can monitor both
networks and servers.
Flexible notification mechanism
Offers reports and data visualization based on the
stored data.
Zabbix is accessed by a web interface.
Zabbix
ClusterControl
ClusterControl is a polyglot management and
monitoring system that helps to deploy,
manage, monitor and scale different databases.
Supports PostgreSQL, MySQL, MariaDB,
MongoDB, Galera Cluster and more.
More Information
For more information about how to monitoring PostgreSQL with an external tool
you can check the following blog:
The Best Alert and Notification Tools for PostgreSQL
https://severalnines.com/blog/best-alert-and-notification-tools-postgresql
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
Impact of monitoring on performance
Logs and Queries
VS
Monitoring Performance
Poll 3 - How are your Postgres databases
performing?
Copyright 2018 Severalnines AB
(select one)
● Good, they are well tuned
● Poorly, we need to optimize them
● Poorly despite optimizing, we need a new DB architecture
● Good, but we might run into (traffic growth) issues
● Other
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
Demo
Copyright 2017 Severalnines AB
Copyright 2018 Severalnines AB
Q & A
Additional Resources
Free PostgreSQL
Whitepaper
severalnines.com/res
ources/whitepapers
Additional Resources
● How to Benchmark PostgreSQL Performance
○ https://severalnines.com/blog/how-benchmark-postgresql-performance-using-sysbench
● Tuning Input/Output (I/O) Operations for PostgreSQL
○ https://severalnines.com/blog/tuning-io-operations-postgresql
● A Performance Cheat Sheet for PostgreSQL
○ https://severalnines.com/blog/performance-cheat-sheet-postgresql
● Contact us: info@severalnines.com

More Related Content

What's hot

Using ClickHouse for Experimentation
Using ClickHouse for ExperimentationUsing ClickHouse for Experimentation
Using ClickHouse for ExperimentationGleb Kanterov
 
Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)Anastasia Lubennikova
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsAlluxio, Inc.
 
Oracle 12c PDB insights
Oracle 12c PDB insightsOracle 12c PDB insights
Oracle 12c PDB insightsKirill Loifman
 
PostGreSQL Performance Tuning
PostGreSQL Performance TuningPostGreSQL Performance Tuning
PostGreSQL Performance TuningMaven Logix
 
Airbyte @ Airflow Summit - The new modern data stack
Airbyte @ Airflow Summit - The new modern data stackAirbyte @ Airflow Summit - The new modern data stack
Airbyte @ Airflow Summit - The new modern data stackMichel Tricot
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions Yugabyte
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
Oracle data guard for beginners
Oracle data guard for beginnersOracle data guard for beginners
Oracle data guard for beginnersPini Dibask
 
PostgreSql query planning and tuning
PostgreSql query planning and tuningPostgreSql query planning and tuning
PostgreSql query planning and tuningFederico Campoli
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesDatabricks
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®confluent
 
How to use 23c AHF AIOPS to protect Oracle Databases 23c
How to use 23c AHF AIOPS to protect Oracle Databases 23c How to use 23c AHF AIOPS to protect Oracle Databases 23c
How to use 23c AHF AIOPS to protect Oracle Databases 23c Sandesh Rao
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Aaron Shilo
 
Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the CoversApache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the CoversScyllaDB
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsAnil Nair
 
Postgresql database administration volume 1
Postgresql database administration volume 1Postgresql database administration volume 1
Postgresql database administration volume 1Federico Campoli
 
Google BigQuery Best Practices
Google BigQuery Best PracticesGoogle BigQuery Best Practices
Google BigQuery Best PracticesMatillion
 
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfOracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfSrirakshaSrinivasan2
 

What's hot (20)

Using ClickHouse for Experimentation
Using ClickHouse for ExperimentationUsing ClickHouse for Experimentation
Using ClickHouse for Experimentation
 
Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
 
Oracle 12c PDB insights
Oracle 12c PDB insightsOracle 12c PDB insights
Oracle 12c PDB insights
 
PostGreSQL Performance Tuning
PostGreSQL Performance TuningPostGreSQL Performance Tuning
PostGreSQL Performance Tuning
 
Airbyte @ Airflow Summit - The new modern data stack
Airbyte @ Airflow Summit - The new modern data stackAirbyte @ Airflow Summit - The new modern data stack
Airbyte @ Airflow Summit - The new modern data stack
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
Oracle data guard for beginners
Oracle data guard for beginnersOracle data guard for beginners
Oracle data guard for beginners
 
PostgreSql query planning and tuning
PostgreSql query planning and tuningPostgreSql query planning and tuning
PostgreSql query planning and tuning
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®
 
How to use 23c AHF AIOPS to protect Oracle Databases 23c
How to use 23c AHF AIOPS to protect Oracle Databases 23c How to use 23c AHF AIOPS to protect Oracle Databases 23c
How to use 23c AHF AIOPS to protect Oracle Databases 23c
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
 
Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the CoversApache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the Covers
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret Internals
 
Postgresql database administration volume 1
Postgresql database administration volume 1Postgresql database administration volume 1
Postgresql database administration volume 1
 
Google BigQuery Best Practices
Google BigQuery Best PracticesGoogle BigQuery Best Practices
Google BigQuery Best Practices
 
Big query
Big queryBig query
Big query
 
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfOracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
 

Similar to Webinar slides: An Introduction to Performance Monitoring for PostgreSQL

Troubleshooting SQL Server
Troubleshooting SQL ServerTroubleshooting SQL Server
Troubleshooting SQL ServerStephen Rose
 
15 Troubleshooting tips and Tricks for Database 21c - KSAOUG
15 Troubleshooting tips and Tricks for Database 21c - KSAOUG15 Troubleshooting tips and Tricks for Database 21c - KSAOUG
15 Troubleshooting tips and Tricks for Database 21c - KSAOUGSandesh Rao
 
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUGSandesh Rao
 
Will it Scale? The Secrets behind Scaling Stream Processing Applications
Will it Scale? The Secrets behind Scaling Stream Processing ApplicationsWill it Scale? The Secrets behind Scaling Stream Processing Applications
Will it Scale? The Secrets behind Scaling Stream Processing ApplicationsNavina Ramesh
 
Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Bhupesh Chawda
 
Real-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache ApexReal-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache ApexApache Apex
 
515689311-Postgresql-DBA-Architecture.pptx
515689311-Postgresql-DBA-Architecture.pptx515689311-Postgresql-DBA-Architecture.pptx
515689311-Postgresql-DBA-Architecture.pptxssuser03ec3c
 
BW Adjusting settings and monitoring data loads
BW Adjusting settings and monitoring data loadsBW Adjusting settings and monitoring data loads
BW Adjusting settings and monitoring data loadsLuc Vanrobays
 
HA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTX
HA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTXHA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTX
HA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTXThinL389917
 
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...Flink Forward
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasFlink Forward
 
Dmv's & Performance Monitor in SQL Server
Dmv's & Performance Monitor in SQL ServerDmv's & Performance Monitor in SQL Server
Dmv's & Performance Monitor in SQL ServerZeba Ansari
 
Salesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaSalesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaThomas Alex
 
MongoDB Operational Best Practices (mongosf2012)
MongoDB Operational Best Practices (mongosf2012)MongoDB Operational Best Practices (mongosf2012)
MongoDB Operational Best Practices (mongosf2012)Scott Hernandez
 
Netflix SRE perf meetup_slides
Netflix SRE perf meetup_slidesNetflix SRE perf meetup_slides
Netflix SRE perf meetup_slidesEd Hunter
 
Observability tips for HAProxy
Observability tips for HAProxyObservability tips for HAProxy
Observability tips for HAProxyWilly Tarreau
 
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaPrometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaSridhar Kumar N
 

Similar to Webinar slides: An Introduction to Performance Monitoring for PostgreSQL (20)

Greske na sapu
Greske na sapuGreske na sapu
Greske na sapu
 
Troubleshooting SQL Server
Troubleshooting SQL ServerTroubleshooting SQL Server
Troubleshooting SQL Server
 
15 Troubleshooting tips and Tricks for Database 21c - KSAOUG
15 Troubleshooting tips and Tricks for Database 21c - KSAOUG15 Troubleshooting tips and Tricks for Database 21c - KSAOUG
15 Troubleshooting tips and Tricks for Database 21c - KSAOUG
 
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
 
Performance Whackamole (short version)
Performance Whackamole (short version)Performance Whackamole (short version)
Performance Whackamole (short version)
 
Will it Scale? The Secrets behind Scaling Stream Processing Applications
Will it Scale? The Secrets behind Scaling Stream Processing ApplicationsWill it Scale? The Secrets behind Scaling Stream Processing Applications
Will it Scale? The Secrets behind Scaling Stream Processing Applications
 
Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016
 
Real-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache ApexReal-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache Apex
 
515689311-Postgresql-DBA-Architecture.pptx
515689311-Postgresql-DBA-Architecture.pptx515689311-Postgresql-DBA-Architecture.pptx
515689311-Postgresql-DBA-Architecture.pptx
 
BW Adjusting settings and monitoring data loads
BW Adjusting settings and monitoring data loadsBW Adjusting settings and monitoring data loads
BW Adjusting settings and monitoring data loads
 
HA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTX
HA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTXHA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTX
HA and DR Architecture for HANA on Power Deck - 2022-Nov-21.PPTX
 
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
 
11g R2
11g R211g R2
11g R2
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
 
Dmv's & Performance Monitor in SQL Server
Dmv's & Performance Monitor in SQL ServerDmv's & Performance Monitor in SQL Server
Dmv's & Performance Monitor in SQL Server
 
Salesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaSalesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafka
 
MongoDB Operational Best Practices (mongosf2012)
MongoDB Operational Best Practices (mongosf2012)MongoDB Operational Best Practices (mongosf2012)
MongoDB Operational Best Practices (mongosf2012)
 
Netflix SRE perf meetup_slides
Netflix SRE perf meetup_slidesNetflix SRE perf meetup_slides
Netflix SRE perf meetup_slides
 
Observability tips for HAProxy
Observability tips for HAProxyObservability tips for HAProxy
Observability tips for HAProxy
 
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaPrometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
 

More from Severalnines

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSSeveralnines
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudSeveralnines
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsSeveralnines
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSeveralnines
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...Severalnines
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBSeveralnines
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlSeveralnines
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Severalnines
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Severalnines
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBSeveralnines
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseSeveralnines
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBSeveralnines
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerSeveralnines
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifeSeveralnines
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Severalnines
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningSeveralnines
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBSeveralnines
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Severalnines
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilitySeveralnines
 
Webinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementWebinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementSeveralnines
 

More from Severalnines (20)

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High Availability
 
Webinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementWebinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database Management
 

Recently uploaded

VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...akbard9823
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of indiaimessage0108
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 

Recently uploaded (20)

Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of india
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Call Girls Service Dwarka @9999965857 Delhi 🫦 No Advance VVIP 🍎 SERVICE
Call Girls Service Dwarka @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SERVICECall Girls Service Dwarka @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SERVICE
Call Girls Service Dwarka @9999965857 Delhi 🫦 No Advance VVIP 🍎 SERVICE
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 

Webinar slides: An Introduction to Performance Monitoring for PostgreSQL

  • 1. August 2018 An Introduction to Performance Monitoring for PostgreSQL Sebastian Insausti Presenter sebastian@severalnines.com
  • 2. Copyright 2017 Severalnines AB I'm Jean-Jérôme from the Severalnines Team and I'm your host for today's webinar! Feel free to ask any questions in the Questions section of this application or via the Chat box. You can also contact me directly via the chat box or via email: info@severalnines.com during or after the webinar. Your host & some logistics
  • 3.
  • 5. Copyright 2017 Severalnines AB Automation & Management Deployment ● Deploy a Cluster in Minutes ● On-Prem or Cloud (AWS/Azure/Google) Monitoring ● Systems View with 1 sec Resolution ● DB / OS stats & Performance Advisors ● Configurable Dashboards ● Query Analyzer ● Real-time / historical Management ● Backup Management ● Upgrades & Patching ● Security & Compliance ● Operational Reports ● Automatic Recovery & Repair ● Performance Management ● Automatic Performance Advisors
  • 6. Copyright 2017 Severalnines AB Supported Databases
  • 7. Copyright 2017 Severalnines AB Our Customers
  • 8. Poll 1 - What databases do you currently use? Copyright 2018 Severalnines AB (select one or more) ● PostgreSQL ● MySQL/MariaDB ● MongoDB ● Oracle and/or MS SQL ● Other
  • 9. August 2018 An Introduction to Performance Monitoring for PostgreSQL Sebastian Insausti Presenter sebastian@severalnines.com
  • 10. Agenda ● PostgreSQL architecture overview ● Key PostgreSQL metrics and their meaning ○ Troubleshooting performance problems in production ○ Tuning ● Performance monitoring tools ● Impact of monitoring on performance ● How to use ClusterControl to identify performance issues ○ Demo
  • 11. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB PostgreSQL architecture overview
  • 12. Fundamental Parts ● Processes ○ Postgres Server Process ○ Backend Process ○ Background Process ○ Replications Associated Process ○ Background Worker Process ● Memory ○ Local memory area ○ Shared memory area ● Disk ○ Data Files ○ WAL Files ○ Log Files
  • 16. Disk
  • 18. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB Key PostgreSQL metrics and their meaning
  • 19. System Monitoring ● CPU Usage: Percentage use of CPU (%cpu) ● RAM Usage: Amount of free RAM memory (mem free) ● Network: Packet loss or high latency (packet time or packet loss) ● Disk Usage: Percentage use of disk (use%) ● Disk IOPS: Read or write per second, and IO wait. (r/s, w/s, iowait) ● SWAP usage: Amount of free SWAP memory (swap free)
  • 20. Tuning instance vs workload ● Instance Tuning ○ Instance parameters (OS, Database) ● Workload Tuning ○ Queries, Schema
  • 21. Types of Instance Metrics ● Caching ● Connections ● Checkpoints ● Commits ● Replication ● Vacuum
  • 22. Caching (1 of 3) Cache hits vs disk hits: Disk access is expensive, we want to fetch most of the data in memory. Check queries to confirm if you are using cache or disk (EXPLAIN ANALYZE BUFFER). Related parameters: ● shared_buffers: The amount of memory that the database server uses for shared memory buffers. If this value is too low, the database would use more disk, which would cause more slowness.
  • 23. ● work_mem: Amount of memory used by the internal operations of ORDER BY, DISTINCT and JOIN before writing to the temporary files on disk. If this value is too low, the database would use more disk. ● temp_buffers: Used to store the temporary tables used in each session. This parameter sets the maximum amount of memory for this task. Caching (2 of 3)
  • 24. Caching (3 of 3) ● maintenance_work_mem: Maximum memory that an operation like Vacuuming, adding indexes or foreign keys can consume. ● effective_cache_size: Used by the query planner to take into account plans that may or may not fit in memory. A high value makes it more probable that index scans are used and a low value makes it more probable that sequential scans will be used.
  • 25. Connections Amount of connections: Create a baseline and check for odd patterns. ○ Increasing: Bad use of connection pooling, locking, increase of activity. ○ Decreasing: Application problem , networking issue. State of connections: Search for queries in a particular state. How we manage transactions in our applications can impact here. Related parameters: ● max_connections: This parameter determines the maximum number of simultaneous connections to our database.
  • 26. Checkpoints (1 of 2) Checkpoints are points in the sequence of transactions at which all data files have been updated with all information written before that checkpoint. In the event of a crash, the crash recovery procedure looks at the latest checkpoint record to determine the point in the log (known as the redo record) from which it should start the REDO operation. Checkpoint frequency: Frequency impacts disk I/O performance.
  • 27. Checkpoints (2 of 2) Related parameters: ● Checkpoint_timeout: Maximum time between automatic WAL checkpoints, in seconds. ● max_wal_size: Maximum size that the WAL is allowed to grow between the control points. ● min_wal_size: When the WAL file is kept below this value, it is recycled for future use at a checkpoint, instead of being deleted. ● wal_sync_method: It is used to force WAL updates to disk. ● wal_buffers: Amount of shared memory used for WAL data that has not yet been written to disk.
  • 28. High number of commits: Can be caused by inefficient bulk loads. Check workload and what have changed. Related parameters: ● synchronous_commit: It specifies if the transaction commit will wait for the WAL records to be written to disk before the command returns a "success" indication to the client. Possible values: on, remote_apply, remote_write, local and off. Commits (1 of 2)
  • 29. [root@postgres1 /]# ./pgbench -c50 -N -Upgbtest pgbtest Commits (2 of 2) synchronous_commit TPS on (default) 679.942166 off 913.768318 local 778.297985 remote_write 719.684452 remote_apply 630.358726
  • 30. Lag and state: The key metrics to monitor here would be the lag and the replication state. ● Check for networking issues. ● Check for resources or underdimesioning issues. Related parameters: ● max_wal_senders: It specifies the maximum number of concurrent connections from standby servers or streaming base backup clients. The parameter cannot be set higher than max_connections. Replication
  • 31. Vacuum (1 of 3) Vacuum process: It is responsible for several maintenance tasks in the database, one of them recovering storage used by dead tuples. If the VACUUM is taking too much time or resources, it means that we must do it more frequently To monitor the vacuum process, check for dead tuples and last time vacuum execution. We have this information in the pg_stat_user_tables: SELECT relname, n_dead_tup, last_autovacuum FROM pg_stat_user_tables; relname | n_dead_tup | last_autovacuum -------------+------------------+------------------------------- setups | 343688 | 2018-08-15 05:55:30.309274+00 users | 234865 | 2018-08-15 21:46:41.015965+00
  • 32. Vacuum (2 of 3) If the autovacuum process is not running: ● Check process on the operating system: [root@postgres1 /]# ps aux |grep autovacuum postgres 283 0.0 0.8 435340 8768 ? Ss 00:44 0:01 postgres: autovacuum launcher process ● Check autovacuum status on the database: SELECT name, setting FROM pg_settings WHERE name='autovacuum'; name | setting ------------+--------- autovacuum | on (1 row)
  • 33. Vacuum (3 of 3) Related parameters: ● autovacuum_work_mem: It specifies the maximum amount of memory to be used by each autovacuum worker process. It defaults to -1, indicating that we are using maintenance_work_mem.
  • 34. Check Error Log: Check your log for errors like ‘FATAL’ or ‘deadlock’, or even for common errors for proactive maintenance. In general, the error messages contain a description of the issue, detailed information, and a hint. Examples: 2018-08-19 02:06:28.053 UTC [28856] FATAL: password authentication failed for user "username" 2018-08-19 01:59:02.998 UTC [28789] ERROR: duplicate key value violates unique constraint "sbtest21_pkey" Monitoring the Error Log (1 of 2)
  • 35. Monitoring the Error Log (2 of 2) 2018-08-18 12:56:38.520 -03 [1181] ERROR: deadlock detected 2018-08-18 12:56:38.520 -03 [1181] DETAIL: Process 1181 waits for ShareLock on transaction 579; blocked by process 1148. Process 1148 waits for ShareLock on transaction 578; blocked by process 1181. Process 1181: UPDATE country SET population=18886001 WHERE code='AUS'; Process 1148: UPDATE country SET population=15864001 WHERE code='NLD'; 2018-08-18 12:56:38.520 -03 [1181] HINT: See server log for query details. 2018-08-18 12:56:38.520 -03 [1181] CONTEXT: while updating tuple (0,15) in relation "country" 2018-08-18 12:56:38.520 -03 [1181] STATEMENT: UPDATE country SET population=18886001 WHERE code='AUS'; 2018-08-18 12:59:50.568 -03 [1181] ERROR: current transaction is aborted, commands ignored until end of transaction block
  • 36. Patterns: Check the patterns of the queries. Differences in time or frequency. Operation: If you have a lot of reads, consider sending to a slave. Locks or indexes: Understand how locking works, and if there are deadlocks. Look for unindexed queries or unused indexes. Queries
  • 37. ● There are several types of locks. ● The important thing about them, is how they conflict with each other. Locks
  • 38. Queries Slow queries: ● Resources: Check for load somewhere, high CPU, or swapping. ● Inefficient plan: Check for using correct indexes, bloat or out of date statistics. ● Locks: Check for queries waiting for another query. Related parameters: ● default_statistics_target: PostgreSQL collects statistics from each of the tables to decide how queries will be executed on them. This value set the number of rows to be inspected by ANALYZE process.
  • 39. Queries world=# EXPLAIN SELECT * FROM city t1,country t2 WHERE id>100 AND t1.population>700000 AND t2.population<7000000; QUERY PLAN -------------------------------------------------------------------------- Nested Loop (cost=0.00..734.81 rows=50662 width=144) -> Seq Scan on city t1 (cost=0.00..93.19 rows=347 width=31) Filter: ((id > 100) AND (population > 700000)) -> Materialize (cost=0.00..8.72 rows=146 width=113) -> Seq Scan on country t2 (cost=0.00..7.99 rows=146 width=113) Filter: (population < 7000000) (6 rows)
  • 40. Queries world=# EXPLAIN ANALYZE SELECT * FROM city t1,country t2 WHERE id>100 AND t1.population>700000 AND t2.population<7000000; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------- Nested Loop (cost=0.00..734.81 rows=50662 width=143) (actual time=0.040..22.066 rows=51100 loops=1) -> Seq Scan on city t1 (cost=0.00..93.19 rows=347 width=31) (actual time=0.025..0.581 rows=350 loops=1) Filter: ((id > 100) AND (population > 700000)) Rows Removed by Filter: 3729 -> Materialize (cost=0.00..8.72 rows=146 width=112) (actual time=0.000..0.010 rows=146 loops=350) -> Seq Scan on country t2 (cost=0.00..7.99 rows=146 width=112) (actual time=0.005..0.053 rows=146 loops=1) Filter: (population < 7000000) Rows Removed by Filter: 93 Planning time: 0.123 ms Execution time: 24.052 ms (10 rows)
  • 41. world=# EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM city t1,country t2 WHERE id>100 AND t1.population>700000 AND t2.population<7000000; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------- Nested Loop (cost=0.00..734.81 rows=50662 width=143) (actual time=0.034..21.384 rows=51100 loops=1) Buffers: shared hit=37 -> Seq Scan on city t1 (cost=0.00..93.19 rows=347 width=31) (actual time=0.025..0.637 rows=350 loops=1) Filter: ((id > 100) AND (population > 700000)) Rows Removed by Filter: 3729 Buffers: shared hit=32 -> Materialize (cost=0.00..8.72 rows=146 width=112) (actual time=0.000..0.010 rows=146 loops=350) Buffers: shared hit=5 -> Seq Scan on country t2 (cost=0.00..7.99 rows=146 width=112) (actual time=0.005..0.054 rows=146 loops=1) Filter: (population < 7000000) Rows Removed by Filter: 93 Buffers: shared hit=5 Planning time: 0.134 ms Execution time: 23.881 ms Queries
  • 42. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB Performance monitoring tools
  • 43. Poll 2 - What tools do you use to monitor PostgreSQL? Copyright 2018 Severalnines AB (select one or more) ● On-prem (Nagios, Zabbix) ● SaaS solution (DataDog, NewRelic) ● Postgres centric (Postgres Enterprise Manager, pgwatch2, …) ● Polyglot (ClusterControl) ● Other
  • 44. Built-in ● Error Log Automating some monitoring of the error log, looking for key words like FATAL, ERROR or DEADLOCK is really useful. ● Statistics collector The collector can count accesses to tables and indexes in both disk-block and individual-row terms, tracks the total number of rows in each table, and information about vacuum and analyze actions for each table.
  • 45. Contributed / External ● pg_stat_statements It help us to know the query profile of your database. It tracks all the queries that are executed and stores a lot of useful statistics in a table called pg_stat_statements. ● pg_stat_plans This builds on pg_stat_statements and records query plans for all executed queries.
  • 46. Contributed / External ● pgBadger Performs an analysis of PostgreSQL logs and displays them in an HTML file. pgBadger is able to autodetect your log file format. Parses huge log files as well as gzip compressed files.
  • 47. Contributed / External ● pg_buffercache Allows to check what's happening in the shared buffer cache in real time, showing how many pages are currently held in the cache. ● pgstattuple Generates statistics for tables and indexes, shows how much space used by each table/index is consumed by live tuples, deleted tuples or how much unused space is available in each relation.
  • 48. Operating System ● top: Check CPU, Memory, Load and more ● ps: Check processes running ● free: Check memory (RAM & SWAP) ● netstat / ping / ifconfig: Check the network state ● iostat / iotop: Check the Disk access
  • 49. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB External Performance Monitoring Tools
  • 50. Nagios is an Open Source system and network monitoring application. You can monitor network services, host resources, and more. For monitoring PostgreSQL you can use: ● Plugins ● Create your own script Nagios
  • 51. Zabbix is a software that can monitor both networks and servers. Flexible notification mechanism Offers reports and data visualization based on the stored data. Zabbix is accessed by a web interface. Zabbix
  • 52. ClusterControl ClusterControl is a polyglot management and monitoring system that helps to deploy, manage, monitor and scale different databases. Supports PostgreSQL, MySQL, MariaDB, MongoDB, Galera Cluster and more.
  • 53. More Information For more information about how to monitoring PostgreSQL with an external tool you can check the following blog: The Best Alert and Notification Tools for PostgreSQL https://severalnines.com/blog/best-alert-and-notification-tools-postgresql
  • 54. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB Impact of monitoring on performance
  • 56. Poll 3 - How are your Postgres databases performing? Copyright 2018 Severalnines AB (select one) ● Good, they are well tuned ● Poorly, we need to optimize them ● Poorly despite optimizing, we need a new DB architecture ● Good, but we might run into (traffic growth) issues ● Other
  • 57. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB Demo
  • 58. Copyright 2017 Severalnines AB Copyright 2018 Severalnines AB Q & A
  • 60. Additional Resources ● How to Benchmark PostgreSQL Performance ○ https://severalnines.com/blog/how-benchmark-postgresql-performance-using-sysbench ● Tuning Input/Output (I/O) Operations for PostgreSQL ○ https://severalnines.com/blog/tuning-io-operations-postgresql ● A Performance Cheat Sheet for PostgreSQL ○ https://severalnines.com/blog/performance-cheat-sheet-postgresql ● Contact us: info@severalnines.com