postgres in production.2014

31
© 2014 EDB All rights reserved. 1 Postgres in Production – Enterprise Best Practices

Upload: enterprisedb

Post on 01-Dec-2014

234 views

Category:

Technology


0 download

DESCRIPTION

This presentation explores a broad cross-section of enterprise Postgres deployments to identify key usage patterns and reveals important aspects of performance, scalability, and availability including: • Challenges organizations encounter most frequently during the stages of database development, deployment and maintenance • Tuning parameters used most frequently to improve performance of production databases • Frequently problematic database maintenance processes and configuration parameters • Most commonly-used database back-up and recovery strategies You will gain useful insights about how peer organizations are developing, deploying and supporting production Postgres databases, and will learn some best practices for preparing for deployment or growth.

TRANSCRIPT

Page 1: Postgres in production.2014

© 2014 EDB All rights reserved. 1

Postgres in Production – Enterprise Best Practices

Page 2: Postgres in production.2014

© 2014 EDB All rights reserved. 2

• Explore key Postgres usage patterns, to expose− Challenges users face in adoption, development, deployment

and maintenance− Frequently used tuning parameters− Common database maintenance practices− Database back-up and recovery strategies

• Provide empirical data to help you anticipate needs during your database lifecycles

• Share ideas and resources to help you address problems before they occur

Objectives

Page 3: Postgres in production.2014

© 2014 EDB All rights reserved. 3

• EnterpriseDB Overview (quick)

• Postgres Support Experiences Explore what kinds of issues your peers are experiencing with Postgres, and when they’re encountering those issues

• Database Health Checks

Share what we’ve learned in the field about how Postgres databases are deployed, tuned and supported

• Summary and Useful Resources

• Q&A

Agenda

Page 4: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 4

Brief EDB Overview

Page 5: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 5

Postgres Plus Advanced Server Postgres Plus

Cloud Database

High AvailabilityPerformanceManagement

REMOTEDBA 24x7

SUPPORTPROFESSIONAL

SERVICES

TRAINING

EDB Serves All Your Postgres Needs

PostgreSQL

Security

Page 6: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 6

POSTGRESinnovation

ENTERPRISE reliability

24/7 support

Services & training

Enterprise-class features & tools

Indemnification

Product road-map

Control

Thousands of developers

Fast development

cycles

Low cost

No vendor lock-in

Advanced features

Enabling commercial adoption of Postgres

Page 7: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 7

Postgres Support Experiences

Page 8: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 8

• Adoption of Postgres is growing fast− More and more Postgres users are not not ‘dyed in the wool’ Postgres

users – they come from Oracle, MS SQL, DB2, etc.

• Postgres is moving into complex, mission-critical applications− Question patterns are changing from simple to complex− Expertise level is changing – when the customer calls, it is with a

(more) difficult problem or urgent issue

• How do we make Postgres users even more successful?− Targeted white papers− Targeted training for support team− Pro-active training for users as part of our customer enablement

process− Balanced product strategy of new features, new capabilities and

usability

Why We Analyze Support Tickets

Page 9: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 9

Ticket Volumes & Multi Year Growth

• Q1 2014: ~ 2500 total customers• Analysis in this presentation is based on a representative

sample of tickets raised over a 12 months period

Page 10: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 10

Observations

• Postgres Plus Advanced Server: Strong emphasis on proprietary or commercially supported OSS

• PostgreSQL: Significantly less emphasis on proprietary or commercially supported OSS – even though the customer has commercially supported Postgres Distribution

Tickets and Platforms

Page 11: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 11

When do customers call?

Page 12: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 12

What Do Customers Call About?

POC Dev Deployment Maintenance0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Tuning

Product Awareness

How to

Enhancements

Corruption

Bug

# Tickets PhaseCategory POC Dev Deployment Maintenance Grand TotalBug 8% 22% 9% 7% 10%Corruption 0% 0% 0% 6% 2%Enhancements 3% 4% 1% 0% 1%How to 41% 33% 41% 29% 35%Product Awareness 46% 39% 44% 39% 41%Tuning 3% 2% 5% 19% 10%Grand Total 100% 100% 100% 100% 100%

Page 13: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 13

Where Do Users Need Help# Tickets PhaseCategory POC Dev Deployment Maintenance Grand TotalConnectors 0% 2% 1% 0% 3%

Bug 0% 0% 0% 0% 1%How to 0% 1% 0% 0% 1%Product Awareness 0% 1% 0% 0% 1%

Database 10% 9% 17% 37% 73%Bug 1% 2% 1% 2% 6%Corruption 0% 0% 0% 2% 2%Enhancements 0% 0% 0% 0% 1%

How to 4% 3% 6% 10% 23%Product Awareness 4% 3% 8% 15% 31%Tuning 0% 0% 1% 7% 9%

Replication 1% 4% 4% 2% 12%Bug 0% 1% 0% 0% 2%How to 0% 0% 3% 1% 4%Product Awareness 1% 2% 1% 0% 4%Tuning 0% 0% 0% 1% 1%

Utilities 1% 3% 6% 3% 12%Bug 0% 1% 1% 0% 2%Enhancements 0% 0% 0% 0% 0%How to 1% 1% 3% 1% 6%Product Awareness 0% 1% 3% 1% 5%

Grand Total 12% 17% 28% 42% 100%

Page 14: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 14

Deployment/Database/Product Awareness & How To − How to set up connection pooling?− How to set up Hot Standby and Streaming Replica?− How to add table spaces?− How to partition?− How to upgrade from major version?

Maintenance/Database/Product Awareness & How To− How to find bloat in tables & indexes?− How to enable auditing selectively without performance impact?− What are the effects of changes to the values of postgresql.conf

file parameters wal_writer_delay, bgwriter_delay?− What is the correct configuration of hba_conf?

Select Top questions (not in rank order)

Page 15: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 15

• The majority of questions arise after PoC and Development

• Deployment and Maintenance are the more challenging phases

• Plan early to understand necessary practices− Backup, recovery, high availability strategies− Configuration parameter tuning to support growth− Vacuum and bloat− Connection pooling

Best Practices and Lessons from Support

Page 16: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 16

Lessons Learned from the AHC

Page 17: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 17

• Systematic top-to-bottom review of the customer’s Postgres production installation

• Identifies issues and improvement opportunities in:− Performance− Scalability and support for business and data growth− Availability – Backup strategies, recovery, replication and

failover− Maintenance and tuning− Upgrades

• The following analysis is based on a set of 20 AHCs executed in 2013

Architectural Health Check

Page 18: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 18

Red bars: experts expected top parameters, including vacuum_cost_limit, log_line_prefix, log_min_duration_statement,log_checkpoints

Top Database Parameter Adjustments – Ordered by Frequency

Page 19: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 19

Kernel Parameters

vm.d

irty_

back

grou

nd_r

atio

vm.d

irty_

ratio

    

kern

el.s

hmm

ax 

swap

pine

ss 

kern

el.s

hmal

vm.o

verc

omm

it_m

emor

y

kern

el.m

m.tr

ansp

aren

t_hu

gepa

ge.e

nabl

ed

kern

el.m

m.tr

ansp

aren

t_hu

gepa

ge.d

efra

g0

2

4

6

8

10

12

14

16

Page 20: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 20

Backup and Standby

hot47%

warm24%

None18%

cold12%

Standby ApproachPhysical Only36%

Logical Only29%

Physical and Log-

ical14%

FS Snap-shot7%

None14%

Backup Approach43% of customers could not execute PITR (prior to AHC) – some had NO backup in place

30% of customers would have been slow or unable to recover from failure

Page 21: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 21

Maintenance Tasks

Unused Indexes39%

Bloated Indexes30%

Bloated Tables13%

Missing Indexes

9%

Missing PK9% Bloat management

(43%) is a key production

problem specific to

Postgres

Page 22: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 22

• Majority of Postgres production deployments are on Linux based OS

• Storage system is a key deployment consideration – DAS/SAN/NFS

• OS System Adjustments (dirty_background_ratio & dirty_ratio) are also a major adjustment (70% & 45%)

Observations from the AHCs

Page 23: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 23

Stage: post-production

Primary Issue:

• Outage due to replication failure - insufficient log info to determine true root cause

Potential Pain Points

• Concerns have reached limits of scale and meeting anticipated growth demands

Recommendations

• Backup and recovery strategies

• Implement continuous archive recovery in addition to streaming replication

• Revised backup strategy with PITR

• Tune auto-vacuum settings and manually vacuum large tables

• Indexes – create concurrent indexes, REINDEX to reduce bloat

• Parameter tuning – various for kernel, memory settings and WALs

AHC Case Study #1

Use Case: on-line advertising service with hosted chat

Page 24: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 24

Stage: pre-deployment

Primary Issues:

• Performance in returning results and timeouts

• No backup strategy in place

Potential Pain Points

• Expected data volume growth and increased analysis – scalability concerns

Recommendations

• Kernel param updates (8)- kernel.shmmax, kernel.shmall, vm.dirty_ratio, vm.dirty_background_ratio,…

• Database param changes (11) -effective_cache_size, shared_buffers, bgwriter_lru_maxpages, wal_buffers, work_mem, …

• Re-architect specific heavily-used database function

• Detailed backup and availability strategies

AHC Case Study #2

Use Case: data warehouse reporting at customer sites

Page 25: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 25

Stage: post-production

Primary Issues:

• System performance

• Running out of connections

• Slow queries/ locked tables

• Advice on new SW release

Potential Pain Points

• Concern for increased workloads and scalability

Recommendations

• max_connections was actually too high, work_mem too low

• Increase checkpoint parameters− checkpoint_segments,

checkpoint_timeout, checkpoint_completion_ target, checkpoint_warning

• Tune storage-related params (SAN) - DB, memory, file system work_mem, random_page_cost

• Upgrade for performance and security improvements

• As workload increases, increase RAM and re-tune related memory config. parameters

AHC Case Study #3

Use Case: claims mgmt. system and reporting application

Page 26: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 26

Summary and Useful Resources

Page 27: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 27

• Postgres users consistently experience different kinds of challenges throughout the database lifecycle− Postgres product knowledge is a critical need at all lifecycle

stages

• Many DBAs would benefit from better knowledge of tuning Postgres for their storage infrastructures

• Tuning databases early in the lifecycle can save a lot of time, hassle and user friction after they’re deployed

• Many organizations lack appropriate backup and recovery strategies

Summary

Page 28: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 28

• Why do you need backup and recovery? Backup and Recovery Strategies protect you in case of:− Catastrophic Device Failure− Site Failure− Maintenance− Operator Error− Compliance− Data Corruption

• Key takeaways:− Logical backup provides granularity in objects (tables, table

spaces, databases); Physical backups provide granularity in time for PITR.

− Understand requirements before diving into technology solution

Backup and Recovery Strategies

Page 29: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 29

• Postgres provides− Logical backup (pg_dump)− Binary/physical backup (Filesystem Snapshots &

pg_basebackup)− WAL (write ahead logs)− Streaming replication− Delayed replication

• Advanced solutions, such as RHCS, Veritas Clustering , EFM and  EDB BART - (now in Beta) augment the basic capabilities

Backup and Recovery Strategies

Page 30: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 30

• Performance, Scalability, Availability

• Three-day in-depth Postgres database review

• Analysis of platform, database architecture and application usage

• Provides tuning and management guidance based on EDB’s expert best practices

Get an Architectural Health Check when you are− Not 100% sure about your backup/recovery strategy

− Unsure your database is optimally tuned for your apps

− Moving Postgres databases to the Cloud

− Upgrading your servers to multi-core, high memory devices

− Experiencing high growth in application usage

− Experiencing deterioration of read and/or write throughput

Architectural Health Check

http://enterprisedb.com/services/packaged-services/health-check

Page 31: Postgres in production.2014

© 2014 EnterpriseDB Corporation. All rights reserved. 31

For more information about an Architectural Health Check, please visit www.enterprisedb.com/ahc or email us - [email protected]