Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Rails Support
      • Working with Bundler
    • Python
      • Working with Django
      • Background Jobs in Python
    • Java
      • Working with Maven
      • Java Database Operations
      • Java Advanced Topics
      • Working with Spring Boot
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Databases & Data Management
  • Heroku Postgres
  • Postgres Performance
  • Heroku Postgres Production Tier Technical Characterization

Heroku Postgres Production Tier Technical Characterization

English — 日本語に切り替える

Last updated November 20, 2023

Table of Contents

  • Performance Characteristics
  • Burstable vCPU Performance
  • Architecture, vCPU, RAM, and I/O
  • Data Encryption

The information in this document is subject to change as Heroku adapts the service to better handle customer database workloads.

Heroku Postgres plans offer different performance characteristics based on their CPU, RAM, and I/O architectures. This article provides a technical description of the implementation of Standard-tier and higher plans, along with important performance characteristics for each plan.

Performance Characteristics

The following table outlines Heroku Postgres Standard-tier and higher plans, along with relevant specifications about the underlying hardware:

Plan vCPU RAM PIOPs Burstable vCPU Connection Limit Disk Size Burstable Disk
standard-0 premium-0 private-0 shield-0 2 4 GB 3000 yes, limited 120 64 GB no
standard-2 premium-2 private-2 shield-2 2 8 GB 3000 no 400 256 GB no
standard-3 premium-3 private-3 shield-3 2 15.25 GB 3000 no 500 512 GB no
standard-4 premium-4 private-4 shield-4 4 30.5 GB 3000 no 500 768 GB no
standard-5 premium-5 private-5 shield-5 8 61 GB 4000 no 500 1 TB no
standard-6 premium-6 private-6 shield-6 16 122 GB 6000 no 500 1.5 TB no
premium-l-6 private-l-6 shield-l-6 16 122 GB 6000 no 500 2 TB no
premium-xl-6 private-xl-6 shield-xl-6 16 122 GB 6000 no 500 3 TB no
standard-7 premium-7 private-7 shield-7 32 244 GB 9000 no 500 2 TB no
standard-8 premium-8 private-8 shield-8 64 488 GB 12000 no 500 3 TB no
standard-9 premium-9 private-9 shield-9 96 768 GB 16000 no 500 4 TB no
premium-l-9 private-l-9 shield-l-9 96 768 GB 16000 no 500 5 TB no
premium-xl-9 private-xl-9 shield-xl-9 96 768 GB 16000 no 500 6 TB no
standard-10 premium-10 private-10 shield-10 128 1 TB 32000 no 500 8 TB no

As of June 29, 2023, we’ve migrated all production-tier databases (Standard, Premium, Private, and Shield) away from burstable disk. All production-tier databases have a baseline performance starting at 3000 PIOPs.

Run the pg:info command to check whether your Postgres database has an upgrade available:

$ heroku pg:info
=== HEROKU_POSTGRESQL_RED
Plan         Standard 4
Status       available

All Heroku Postgres plans aside from the Essential tier are single-tenant plans. A customer’s database and related management software are the sole residents of resources on the instance, offering more predictable performance. However, virtualized infrastructure is still subject to some resource contention, and minor performance variations are expected.

Burstable vCPU Performance

All Heroku Postgres plans come with a baseline level of performance, but standard-0, premium-0, private-0, and shield-0 plans are able to burst past that baseline. Burstable performance plans allow each database to run in isolation as a single-tenant instance. This means that when your database is provisioned, no other customer is running on the same server. When your database bursts for an extended time, it’s brought back to the original baseline level of performance. If a consistent level of performance is needed, a non-burstable Heroku Postgres plan provides fixed levels of performance.

The plan type determines the baseline level of performance:

Plan Load Average
standard-0 premium-0 private-0 shield-0 0.2

Each of these plans can burst past these load averages for a short amount of time. If the database has a sustained load over those amounts, however, it’s brought back to the baseline. Load averages can be found in the Heroku Postgres Server metrics, which are part of your application’s logs.

Architecture, vCPU, RAM, and I/O

All Heroku Postgres plans run on 64-bit architectures. This ensures both high performance for internal Postgres operations and interoperability with other features like Forks and Followers across all Standard-tier and higher plans.

vCPU indicates the number of virtual processors on the underlying instance. A larger vCPU count provides higher performance on the virtual server or instance.

RAM is the approximate amount of memory used for data caching. An in-depth discussion on Postgres caching can be found in Understanding Heroku Postgres Data Caching.

All instances are backed by EBS-optimized instances where EBS disks with provisioned IOPs are attached. PIOPs are a measure of how many I/O operations the underlying disks can perform per second. The number of IOPs provisioned for each plan determines its I/O throughput. On write-heavy applications, I/O can be a significant bottleneck, but on read-heavy ones, your hot dataset fits in RAM and can therefore perform well with lower IOPs values.

Data Encryption

All Standard-tier and higher plans are encrypted at rest with AES-256, block-level storage encryption. Amazon manages the keys, and individual volume keys are stable for the lifetime of the volume. You can find more details about EBS encryption here. Heroku doesn’t encrypt anything for you at the Postgres level, so if you wish to encrypt, you can use the PGCrypto extension for your own encryption.

All backup files that are taken using Heroku PGBackups are stored in an encrypted S3 bucket in the US region.

Keep reading

  • Postgres Performance

Feedback

Log in to submit feedback.

Understanding Heroku Postgres Data Caching Increasing Performance of Large Tables on Heroku Postgres Using Partitioning

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
Heroku is acompany
  • heroku.com
  • Terms of Service
  • Privacy (日本語)
  • Cookies
  • Cookie Preferences
  • Your Privacy Choices
  • © 2023 Salesforce.com