SlideShare a Scribd company logo
@LukasFittl
Monitoring
PostgreSQL
At Scale
@LukasFittl
@LukasFittl
pganalyze
@LukasFittl
HostedPostgreSQLMonitoring
pganalyze.com
@LukasFittl
For the purposes of this talk,
Monitoring=

Monitoring+Observability
@LukasFittl
BasicsofPostgresMonitoring
@LukasFittl
“We had an outage yesterday at
10am - whathappened?”
@LukasFittl
Keeping Historic
Statistics Data
IsEssential
@LukasFittl
DIYMonitoringHack:
Save pg_stat_activity and
pg_stat_database
every 10 seconds
into a separate monitoring database
@LukasFittl
@LukasFittl
@LukasFittl
High-Level Metrics
@LukasFittl
AppServers PostgreSQL
DataDirectory
Storage
WAL
Storage
CPU
Memory
Connection
Pooler
@LukasFittl
AppServers PostgreSQL
DataDirectory
Storage
WAL
Storage
CPU
Memory
Connection
Pooler
@LukasFittl
Workload Metrics
vs
Operational Metrics
@LukasFittl
Workload Metrics
vs
Operational Metrics
@LukasFittl
PostgreSQL
ConnectionProcessConnectionProcess
DataDirectory
Storage
WAL
Storage
CPU
Memory
Checkpointer
Background
Writer
AppServers/
ConnectionPooler
Shared
Buffers
ConnectionProcess
QueryExecution
QueryPlanning
autovacuum
WALSender
WALWriter
@LukasFittl
WorkloadMetrics
Data Sources
@LukasFittl
Postgres
Statistics Tables
@LukasFittl
EXPLAIN Plans
@LukasFittl
OperationalMetrics
Data Sources
@LukasFittl
Postgres
Statistics Tables
@LukasFittl
System Statistics
(CPU Util %, I/O Util %, etc)
@LukasFittl
Log Files
@LukasFittl
OperationalMetrics
Can Be Understood Better
Through A Focus on Workload
@LukasFittl
3Quick
WorkloadMetrics

ToMonitor
@LukasFittl
AgeOfOldestTransaction
SELECT MAX(now() - xact_start)

FROM pg_stat_activity

WHERE state <> ‘idle’
@LukasFittl
SELECT sum(heap_blks_hit) /
nullif(sum(heap_blks_hit + heap_blks_read),0)
FROM pg_statio_user_tables
TableCacheHitRate
Target: >= 99%
@LukasFittl
SELECT relname, n_live_tup, seq_scan + idx_scan,
100 * idx_scan / (seq_scan + idx_scan)
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC
IndexHitRate
Target: >= 95% on large, active tables
@LukasFittl
Whatarethecausesofproblems?
@LukasFittl
Workload
BadDataModel/Indices
WrongPostgresConfig
InsufficientHardware
@LukasFittl
Workload
BadDataModel/Indices
WrongPostgresConfig
InsufficientHardware
@LukasFittl
Did the workloadchange?
@LukasFittl
New code deployed
New customers
App config change
@LukasFittl
Ability to Drill Down
From “HighCPUUtilization”
To Specific Set of Queries
@LukasFittl
Workload
BadDataModel/Indices
WrongPostgresConfig
InsufficientHardware
@LukasFittl
Did the schema
change recently?
@LukasFittl
Did the queryplan
change recently?
@LukasFittl
Workload
BadDataModel/Indices
WrongPostgresConfig
InsufficientHardware
@LukasFittl
AutomaticPostgresConfig

Management/Validation
@LukasFittl
shared_buffers
max_connections
(maintenance_)work_mem
autovacuum settings
checkpointer settings
planner settings
@LukasFittl
Workload
BadDataModel/Indices
WrongPostgresConfig
InsufficientHardware
@LukasFittl
On Cloud Providers,
Closely Watch Your I/OMetrics
@LukasFittl
@LukasFittl
Drill-Down
IntoWorkload
Using Query Metrics
@LukasFittl
WhichQueriesAreRunning?
@LukasFittl
userid | 10
dbid | 1397527
query | SELECT * FROM x WHERE y = $1
calls | 5
total_time | 15.249
rows | 0
shared_blks_hit | 451
shared_blks_read | 41
shared_blks_dirtied | 26
shared_blks_written | 0
local_blks_hit | 0
local_blks_read | 0
local_blks_dirtied | 0
local_blks_written | 0
temp_blks_read | 0
temp_blks_written | 0
blk_read_time | 0
blk_write_time | 0
pg_stat_statements
@LukasFittl
Supportedoncloudplatforms
@LukasFittl
SELECT * FROM pg_stat_statements LIMIT 1;
userid | 10
dbid | 17025
queryid | 1720234670
query | SELECT * FROM x WHERE y = $1
calls | 14
total_time | 0.151
rows | 28
shared_blks_hit | 14
shared_blks_read | 0
shared_blks_dirtied | 0
shared_blks_written | 0
local_blks_hit | 0
local_blks_read | 0
local_blks_dirtied | 0
local_blks_written | 0
temp_blks_read | 0
temp_blks_written | 0
blk_read_time | 0
blk_write_time | 0
@LukasFittl
queryid | 1720234670
query | SELECT * FROM x WHERE y = ?
calls | 5
total_time | 15.249
Query+No.ofCalls+AvgTime
@LukasFittl
shared_blks_hit | 2447215
shared_blks_read | 55335
Avg.SharedBufferHitRate:97%
hit_rate = shared_blks_hit / (shared_blks_hit + shared_blks_read)
@LukasFittl
blk_read_time | 14.594
blk_write_time | 465.661
Timespentreading/writingtodisk
track_io_timing = on
pg_qtop
Simple top-like tool that shows
pg_stat_statements data
https://github.com/lfittl/pg_qtop
AVG | QUERY
--------------------------------------------------------------------------------
10.7ms | SELECT oid, typname, typelem, typdelim, typinput FROM pg_type
3.0ms | SET time zone 'UTC'
0.4ms | SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid),
a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid
= d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = ?::regclass AND a.attnum > ? AND NOT
a.attisdropped ORDER BY a.attnum
0.2ms | SELECT pg_stat_statements_reset()
0.1ms | SELECT query, calls, total_time FROM pg_stat_statements
0.1ms | SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid
= cons.conrelid AND attr.attnum = cons.conkey[?] WHERE cons.contype = ? AND cons.conrelid = ?:
:regclass
0.0ms | SELECT COUNT(*) FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE
c.relkind in (?,?) AND c.relname = ? AND n.nspname = ANY (current_schemas(?))
0.0ms | SELECT * FROM posts JOIN users ON (posts.author_id = users.id) WHERE users.login = ?;
0.0ms | SET client_min_messages TO 'panic'
0.0ms | set client_encoding to 'UTF8'
0.0ms | SHOW client_min_messages
0.0ms | SELECT * FROM ad_reels WHERE id = ?;
0.0ms | SELECT * FROM posts WHERE guid = ?;
0.0ms | SELECT ?
0.0ms | SET client_min_messages TO 'warning'
0.0ms | SET standard_conforming_strings = on
0.0ms | SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC LIMIT ?
0.0ms | SHOW TIME ZONE
pg_qtop -d testdb
AVG | QUERY
--------------------------------------------------------------------------------
0.0ms | SELECT * FROM posts JOIN users ON (posts.author_id = users.id) WHERE users.login = ?;
0.0ms | SELECT * FROM posts WHERE guid = ?;
0.0ms | SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC LIMIT ?
pg_qtop -d testdb -t posts
AVG | CALLS | HIT RATE | QUERY
--------------------------------------------------------------------------------
0.1ms | 1 | 100.0 | SELECT * FROM users;
0.1ms | 1 | - | SELECT * FROM databases;
0.0ms | 1 | - | SELECT * FROM invoices;
0.0ms | 1 | - | SELECT * FROM query_snapshots;
pg_qtop -d testdb -s select
pganalyze.com
@LukasFittl
QueryPlans
@LukasFittl
@LukasFittl
log_min_duration_statement
gives you queries withparameters
@LukasFittl
@LukasFittl
@LukasFittl
auto_explain
logs the query plan

for specific slow queries
@LukasFittl
@LukasFittl
Scaling # of Servers
Scaling # of Applications
Scaling # of Developers
@LukasFittl
Scaling # of Servers
Scaling # of Applications
Scaling # of Developers
@LukasFittl
Read Replicas:
Monitor ReplicaLag

& CPUUtilization
@LukasFittl
Sharding:
Monitor Everything*



* Each Data/Worker Node Should

Be Treated Like Single-Node Postgres
@LukasFittl
Scaling # of Servers
Scaling # of Applications
Scaling # of Developers
@LukasFittl
Monitoring Data:
application_name
@LukasFittl
pg_stat_activity
@LukasFittl
LogFiles
Add %a to your log_line_prefix
@LukasFittl
Annotate Queries
With Their QueryOrigin
@LukasFittl
@LukasFittl
@LukasFittl
@LukasFittl
github.com/basecamp/marginalia
Automatic
QueryAnnotationsForRubyonRails
@LukasFittl
Make sure all apps are

monitored the same way through
Checklists
@LukasFittl
Scaling # of Servers
Scaling # of Applications
Scaling # of Developers
@LukasFittl
Make Tooling Accessible
To AppDevelopers,NotJustDBAs
@LukasFittl
It Only Takes 1Developer To



…IntroduceASlowQueryWithoutAnIndex
…WriteaMigrationThatTakesALongExclusiveLock
…DropATable
@LukasFittl
Code Review Needs To Include
SchemaChangeReview &

MissingIndexReview
@LukasFittl
SETstatement_timeout=30s
When Your (Web) App Connects
To Protect Against Unexpected Slow Queries
@LukasFittl
log_statement=ddl
@LukasFittl
Alerting
@LukasFittl
LevelsofNotification:
- Page (Wake Up On-Call)
- Instant Email Notification
- Daily/Weekly Report Email
@LukasFittl
NobodyWantsToBePaged
NobodyReadsEmails
@LukasFittl
Tiedatabasealerts
backtobusinessimpact
@LukasFittl
Onlypagewhen
thedatabaseisactuallydown
(orabouttobedown)
@LukasFittl
FocusonQueryPerformance
Distinguish user-visible slowness
from secondary systems

(e.g. background workers)
@LukasFittl
Establish
Weekly/Monthly
DatabaseReviewPractice
@LukasFittl
TopQueriesByTotalRuntime
@LukasFittl
UnusedIndices
@LukasFittl
UnusualLogEvents
@LukasFittl
3Take-Aways
1.CollectHistoricMetrics
2.FocusonDrill-DownToQueryLevel
3.AnnotateYourQueriesWith
TheirOrigin
@LukasFittl
Monitor YourPostgres:
pganalyze.com



Shard Your Postgres:
citusdata.com
Thanks!
@LukasFittl
@LukasFittl
🐜
Lock Contention
@LukasFittl
LongHeldLocksinTransactions
Rails Counter Cache & Timestamps
BEGIN
SELECT 1 AS one FROM "post_votes" WHERE (…) LIMIT 1
SELECT "posts".* FROM "posts" WHERE "posts"."id" = $1 LIMIT 1
INSERT INTO "notifications" (…) VALUES (…) RETURNING "id"
SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1
UPDATE "users" SET "updated_at" = ? WHERE "users"."id" = ?
INSERT INTO "post_votes" (…) VALUES (…) RETURNING "id"
UPDATE "posts" SET "votes" = COALESCE("votes", 0) + 1 WHERE "posts"."id" = ?
UPDATE "posts" SET "credible_post_votes_count" = … WHERE "posts"."id" = ?
UPDATE "users" SET "updated_at" = ? WHERE "users"."id" = ?
UPDATE "posts" SET "updated_at" = ? WHERE "posts"."id" = ?
COMMIT
@LukasFittl
log_lock_waits=on
deadlock_timeout = 1000 ms
process 20679 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 after 1000.115 ms
process 20678 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 after 1000.126 ms
process 15533 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 1000.129 ms
process 20663 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 1000.100 ms
process 15537 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 1000.130 ms
process 15536 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 1000.222 ms
process 20734 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 1000.130 ms
process 15538 still waiting for ExclusiveLock on tuple (566,1) of relation 16421 1000.136 ms
process 15758 still waiting for ShareLock on transaction 250175899 after 1000.073 ms
@LukasFittl
pg_stat_activity
lock information
https://github.com/postgrespro/pg_wait_sampling
@LukasFittl
IdleTransactions
@LukasFittl
RED: Long Queries
Pid Duration Query
----- --------------- -----------------------------------------------------------------------------------------
31868 00:10:52.165883 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
28835 01:06:16.505554 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
28836 01:06:16.486394 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
28837 01:06:16.41853 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
28838 01:06:16.380474 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
31869 00:10:26.068636 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
31870 00:08:47.790245 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
23781 01:12:14.603475 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
31862 00:10:47.98641 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
31863 00:11:05.921372 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
27648 01:17:38.773909 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
27098 01:28:51.216489 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
27106 01:27:18.455351 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
31880 00:10:52.877779 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
31881 00:10:52.168877 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1
RED: Idle in Transaction
23729 01:37:12.566497 UPDATE "posts" SET "link_unique_visits" = COALESCE("link_unique_visits", 0) + 1 WHERE "posts"."id" = $1
RED: Blocking Queries
23760 UPDATE "posts" SET "link_unique_visits" = COALESCE("link_unique_visits", 0) + 1 WHERE "posts"."id" = $1 01:37:12.646868
23729 UPDATE "posts" SET "link_visits" = COALESCE("link_visits", 0) + 1 WHERE "posts"."id" = $1 01:31:59.088208
Dead Background Worker caused
silent queue back-up for 1hr+

More Related Content

What's hot (20)

Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
Spark Summit
 
Spark performance tuning eng
Spark performance tuning eng
haiteam
 
Spark performance tuning - Maksud Ibrahimov
Spark performance tuning - Maksud Ibrahimov
Maksud Ibrahimov
 
Our Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.do
Metehan Çetinkaya
 
Hadoop Query Performance Smackdown
Hadoop Query Performance Smackdown
DataWorks Summit
 
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Modern PostgreSQL Monitoring & Diagnostics - Mahadeva...
PGConf.ASIA 2019 Bali - Modern PostgreSQL Monitoring & Diagnostics - Mahadeva...
Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
Equnix Business Solutions
 
Spark 2.x Troubleshooting Guide
Spark 2.x Troubleshooting Guide
IBM
 
Extending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session Extensions
Databricks
 
War Stories: DIY Kafka
War Stories: DIY Kafka
confluent
 
Streaming millions of Contact Center interactions in (near) real-time with Pu...
Streaming millions of Contact Center interactions in (near) real-time with Pu...
Frank Kelly
 
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Your Business Continuity Matrix and PostgreSQL's Disa...
PGConf.ASIA 2019 Bali - Your Business Continuity Matrix and PostgreSQL's Disa...
Equnix Business Solutions
 
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
StreamNative
 
DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale
Hakka Labs
 
An Adaptive Execution Engine for Apache Spark with Carson Wang and Yucai Yu
An Adaptive Execution Engine for Apache Spark with Carson Wang and Yucai Yu
Databricks
 
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Databricks
 
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Databricks
 
Flink Forward San Francisco 2018: Steven Wu - "Scaling Flink in Cloud"
Flink Forward San Francisco 2018: Steven Wu - "Scaling Flink in Cloud"
Flink Forward
 
Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
Taming GC Pauses for Humongous Java Heaps in Spark Graph Computing-(Eric Kacz...
Spark Summit
 
Spark performance tuning eng
Spark performance tuning eng
haiteam
 
Spark performance tuning - Maksud Ibrahimov
Spark performance tuning - Maksud Ibrahimov
Maksud Ibrahimov
 
Our Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.do
Metehan Çetinkaya
 
Hadoop Query Performance Smackdown
Hadoop Query Performance Smackdown
DataWorks Summit
 
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
PGConf.ASIA 2019 Bali - Fault Tolerance in PostgreSQL - Muhammad Haroon
Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Modern PostgreSQL Monitoring & Diagnostics - Mahadeva...
PGConf.ASIA 2019 Bali - Modern PostgreSQL Monitoring & Diagnostics - Mahadeva...
Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
Equnix Business Solutions
 
Spark 2.x Troubleshooting Guide
Spark 2.x Troubleshooting Guide
IBM
 
Extending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session Extensions
Databricks
 
War Stories: DIY Kafka
War Stories: DIY Kafka
confluent
 
Streaming millions of Contact Center interactions in (near) real-time with Pu...
Streaming millions of Contact Center interactions in (near) real-time with Pu...
Frank Kelly
 
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Your Business Continuity Matrix and PostgreSQL's Disa...
PGConf.ASIA 2019 Bali - Your Business Continuity Matrix and PostgreSQL's Disa...
Equnix Business Solutions
 
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
StreamNative
 
DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale
Hakka Labs
 
An Adaptive Execution Engine for Apache Spark with Carson Wang and Yucai Yu
An Adaptive Execution Engine for Apache Spark with Carson Wang and Yucai Yu
Databricks
 
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Databricks
 
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Databricks
 
Flink Forward San Francisco 2018: Steven Wu - "Scaling Flink in Cloud"
Flink Forward San Francisco 2018: Steven Wu - "Scaling Flink in Cloud"
Flink Forward
 

Similar to PGConf APAC 2018 - Monitoring PostgreSQL at Scale (20)

Monitoring Postgres at Scale | PostgresConf US 2018 | Lukas Fittl
Monitoring Postgres at Scale | PostgresConf US 2018 | Lukas Fittl
Citus Data
 
Optimizing your app by understanding your Postgres | RailsConf 2019 | Samay S...
Optimizing your app by understanding your Postgres | RailsConf 2019 | Samay S...
Citus Data
 
Monitoring Postgres at Scale | PGConf.ASIA 2018 | Lukas Fittl
Monitoring Postgres at Scale | PGConf.ASIA 2018 | Lukas Fittl
Citus Data
 
Monitoring and scaling postgres at datadog
Monitoring and scaling postgres at datadog
Seth Rosenblum
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Alexey Lesovsky
 
PostgreSQL Performance Problems: Monitoring and Alerting
PostgreSQL Performance Problems: Monitoring and Alerting
Grant Fritchey
 
Postgresql Database Administration- Day4
Postgresql Database Administration- Day4
PoguttuezhiniVP
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
Sean Chittenden
 
How to be a Postgres DBA in a Pinch
How to be a Postgres DBA in a Pinch
ElizabethGarrettChri
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
Fabio Telles Rodriguez
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Alexey Lesovsky
 
Explain this!
Explain this!
Fabio Telles Rodriguez
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Severalnines
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deployments
Odoo
 
Troubleshooting PostgreSQL with pgCenter
Troubleshooting PostgreSQL with pgCenter
Alexey Lesovsky
 
Advanced Postgres Monitoring
Advanced Postgres Monitoring
Denish Patel
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Alexey Lesovsky
 
query-optimization-techniques_talk.pdf
query-optimization-techniques_talk.pdf
garos1
 
PostgreSQL on Solaris
PostgreSQL on Solaris
Theo Schlossnagle
 
PostgreSQL on Solaris
PostgreSQL on Solaris
Theo Schlossnagle
 
Monitoring Postgres at Scale | PostgresConf US 2018 | Lukas Fittl
Monitoring Postgres at Scale | PostgresConf US 2018 | Lukas Fittl
Citus Data
 
Optimizing your app by understanding your Postgres | RailsConf 2019 | Samay S...
Optimizing your app by understanding your Postgres | RailsConf 2019 | Samay S...
Citus Data
 
Monitoring Postgres at Scale | PGConf.ASIA 2018 | Lukas Fittl
Monitoring Postgres at Scale | PGConf.ASIA 2018 | Lukas Fittl
Citus Data
 
Monitoring and scaling postgres at datadog
Monitoring and scaling postgres at datadog
Seth Rosenblum
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Alexey Lesovsky
 
PostgreSQL Performance Problems: Monitoring and Alerting
PostgreSQL Performance Problems: Monitoring and Alerting
Grant Fritchey
 
Postgresql Database Administration- Day4
Postgresql Database Administration- Day4
PoguttuezhiniVP
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
Sean Chittenden
 
How to be a Postgres DBA in a Pinch
How to be a Postgres DBA in a Pinch
ElizabethGarrettChri
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
Fabio Telles Rodriguez
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Alexey Lesovsky
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Severalnines
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deployments
Odoo
 
Troubleshooting PostgreSQL with pgCenter
Troubleshooting PostgreSQL with pgCenter
Alexey Lesovsky
 
Advanced Postgres Monitoring
Advanced Postgres Monitoring
Denish Patel
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Alexey Lesovsky
 
query-optimization-techniques_talk.pdf
query-optimization-techniques_talk.pdf
garos1
 
Ad

More from PGConf APAC (20)

PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC
 
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC
 
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC
 
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
PGConf APAC
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC
 
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC
 
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
PGConf APAC
 
Amazon (AWS) Aurora
Amazon (AWS) Aurora
PGConf APAC
 
Use Case: PostGIS and Agribotics
Use Case: PostGIS and Agribotics
PGConf APAC
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'roll
PGConf APAC
 
PostgreSQL on Amazon RDS
PostgreSQL on Amazon RDS
PGConf APAC
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
PGConf APAC
 
Lightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst Practices
PGConf APAC
 
Lessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’t
PGConf APAC
 
Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?
PGConf APAC
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!
PGConf APAC
 
PostgreSQL: Past present Future
PostgreSQL: Past present Future
PGConf APAC
 
Security Best Practices for your Postgres Deployment
Security Best Practices for your Postgres Deployment
PGConf APAC
 
Swapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgr
PGConf APAC
 
(Ab)using 4d Indexing
(Ab)using 4d Indexing
PGConf APAC
 
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC
 
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC
 
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC
 
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
PGConf APAC
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC
 
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC
 
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
PGConf APAC
 
Amazon (AWS) Aurora
Amazon (AWS) Aurora
PGConf APAC
 
Use Case: PostGIS and Agribotics
Use Case: PostGIS and Agribotics
PGConf APAC
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'roll
PGConf APAC
 
PostgreSQL on Amazon RDS
PostgreSQL on Amazon RDS
PGConf APAC
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
PGConf APAC
 
Lightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst Practices
PGConf APAC
 
Lessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’t
PGConf APAC
 
Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?
PGConf APAC
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!
PGConf APAC
 
PostgreSQL: Past present Future
PostgreSQL: Past present Future
PGConf APAC
 
Security Best Practices for your Postgres Deployment
Security Best Practices for your Postgres Deployment
PGConf APAC
 
Swapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgr
PGConf APAC
 
(Ab)using 4d Indexing
(Ab)using 4d Indexing
PGConf APAC
 
Ad

Recently uploaded (20)

Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...
Matsushita Laboratory
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...
Matsushita Laboratory
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 

PGConf APAC 2018 - Monitoring PostgreSQL at Scale