Heroku Postgres Production Tier Technical Characterization
Last updated 29 April 2016
All of the information in this document is subject to change as Heroku adapts the service to better handle customer database workloads.
The Heroku Postgres Standard, Premium, and Enterprise tier plans offer different performance characteristics based on their CPU, RAM and I/O architectures. This article provides a technical description of the implementation of these production plans, and some of the performance characteristics of each.
The following table outlines our production tier plans along with relevant specifications about the underlying hardware.
|Plan||vCPU||RAM||PIOPs||Burstable||Connection Limit||Disk Size|
|standard-0 premium-0||2||1 GB||200||yes||120||64 GB|
|standard-2 premium-2||2||3.5 GB||200||yes||400||256 GB|
|standard-4 premium-4||2||15 GB||1000||no||500||512 GB|
|standard-5 premium-5||4||30 GB||2000||no||500||1 TB|
|standard-6 premium-6||8||60 GB||3000||no||500||1 TB|
|standard-7 premium-7 enterprise-7||16||120GB||4000||no||500||1 TB|
Premium and Enterprise plans are encrypted at rest by using AES-256, block-level storage encryption.
To view technical characterizations for legacy Heroku Postgres plans, visit the Legacy Plans article.
All Heroku Postgres plans are single-tenant plans, a customer’s database and related management software are the sole residents of resources on the instance, offering more predictable and less variable performance. However, virtualized infrastructure is still subject to some resource contention and minor performance variations are expected.
All Heroku Postgres plans come with a baseline level of performance but a few plans have the ability to burst past that baseline. Unlike a multi-tenancy model, burstable performance plans allows each database to run in isolation as a single-tenant instance. This means that when your database is provisioned, no other customer will be running on the same server. In the event that your database bursts for an extended period of time it will be brought back to the original baseline level of performance. If a consistent level of performance is needed, a non-burstable Heroku Postgres plan will provide fixed levels of performance.
Architecture, vCPU, RAM and I/O
All Heroku Postgres plans run on 64-bit architectures, ensuring best performance for internal Postgres operations, and interoperability with other features like Forks and Followers across all production tier plans.
vCPU are the number of virtual processors on the underlying instance. A larger number of vCPUs provide 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 amount 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 should fit in RAM and can therefore have very high performance with lower IOPs values.