PostgreSQL Performance Tuning
Boost the Performance of your Database.
You have made significant investments in your hardware, so be sure your database fully utilizes it for your workloads. To maximize your ROI, it is crucial for your business to tune your PostgreSQL Database to its top performance.
Although PostgreSQL performs well out-of-the-box, there are several parameters that require further tuning to achieve peak performance for your specific workloads. 2ndQuadrant provides a personalized service for tuning your database, customized to your organizational needs. Our PostgreSQL consultants will help you deliver outstanding performance to your customers while ensuring data integrity.
On this page:
What Our Clients Say
“During our daily load test, we observed an immediate 2-4x improvement in peak throughput.”
Jordan von Kluck, CTO, tastyworks
“The goal of having platinum support was very simple – to serve as a backup and safety mechanism for the internal team at BenchPrep. This allowed the team the ability to work with the professionals at 2ndQuadrant and figure out what we should be tuning and tweaking continuously with regards to the Postgres configuration and also with regards to errors and issues. This ensures that we have a very efficient, responsive, and professional team ready to be accessed any time we need.”
Nickolay Schwarz, CTO, BenchPrep
7 Good Reasons to get Performance Tuning
Increasing the performance of your Postgres database is of critical importance, whether it is to improve your current architecture or as a preparation to start a new project. Every database is different, but these are some of the top indications you can tune the performance of your PostgreSQL database:
- Scalability Analysis. Before investing in vertical or horizontal scaling, analyze available headroom in your existing hardware by tuning it for performance.
- Capacity Planning. It is important to benchmark the maximum throughput your database can achieve in order to plan the workloads it can handle. Tune your database before you benchmark.
- Performance Degradation. You are routinely encountering problems in database performance, slowing your applications down. Optimize your database performance and give your applications a boost.
- Under-Utilized Hardware. Your database server does not fully utilize available hardware resources, resulting in slower performance than what is achievable. Tune your database to ensure full utilization of your hardware’s potential.
- Sub-Optimal Configuration. Your database is delivering throughput that is lower than what’s achievable because it isn’t customized for your organizational workload. Optimize your database configuration based on your organizational workloads.
- Underperforming Queries. Some frequently executed queries are taking too long to return. Let our experts guide you on how to optimize these queries.
- Changing Workloads. As businesses grow, workloads can change and/or increase. Tune your database for performance so it can keep up.
PostgreSQL Performance Tuning Service
Performance Tuning from 2ndQuadrant includes an in-depth analysis of the following aspects, after which, we provide you with a detailed report of our findings. The report includes our recommendations to optimize your database for your specific use case and overall business goals.
- Database Configuration Tuning. We analyze the configuration parameters of your PostgreSQL database and recommend the optimum configuration for your organizational workload. Among other things, we examine the block size of different file systems like ZFS, and recommend optimum configuration.
- Index Analysis. Indexes can be tricky to handle, especially as your data grows. We analyze your existing indexes and suggest any optimizations. In addition to that, we recommend the addition/removal of indexes according to your organizational needs.
- Table Partition Analysis. Table partitions are essential to data management and maximizing efficiency when accessing that data. We analyze and recommend the addition/removal of partitions based on your workloads.
- Hardware Usage Analysis. In order to fully utilize the hardware your database is hosted on, we study the configuration and recommend changes which will ensure full utilization of the power your hardware provides.
- Connection Pooling Review. Many users and applications will connect to the database to perform functions they are responsible for; we review your connection pooling strategy to ensure that it’s optimized for your specific use case.
- Analysis of Slow Running Queries. If there are specific queries that you feel are running slower than expected, we perform a detailed analysis to identify potential optimizations accordingly.
- Operating System Configuration Tuning. The OS forms the underlying layer of your database, so configuration parameters for the OS and the hardware it’s hosted on should also be customized for your organizational workload. Among other things, we can use pg_buffercache as our guide and make recommendations about shared_buffer parameter setting to optimize for your workload.
- Storage Partition Analysis. Building on the OS configuration, storage disk partitions also tend to play a significant role in the performance of any software the OS hosts. We examine existing partitions and provide recommendations on their configuration and structure that will enhance processing efficiency.
Our Customers’ Experiences
BenchPrep is a Chicago-based learning success platform which allows organizations to offer test preparation and continued learning programs to users across the globe.
Due to an exponential increase in the demand for online training, the number of organizations using BenchPrep for their learning needs grew significantly. The platform, which was originally based on a single Postgres database, started to have performance issues due to the unexpected load.
Find out how 2ndQuadrant recommended solutions to help BenchPrep scale their infrastructure and provide an unmatched learning experience to its customers.
tastyworks is a retail brokerage firm based in Chicago, IL that is leading a financial revolution for the do-it-yourself investor, and uses PostgreSQL as its backend database for its cutting edge technology applications. Shortly after launching, the rapid success of the tastyworks platform created a larger than expected production volume, leading to unforeseen performance issues.
Find out how 2ndQuadrant helped optimize their database with a 4x performance boost and achieve: High Availability, updated PostgreSQL configuration to meet best practices, seamless migration to new servers, and much more!
Performance Tuning Knowledge Base
Postgres Vacuuming Through Pictures Webinar Video
This webinar was held on 24 July 2019 and covered key concepts of Postgres Vacuum and Autovacuum. It included use of diagrams, illustrations, and animations to present Postgres Vacuum, tuning Postgres Vacuum concepts and how tuning Vacuum properly makes a difference in database performance. Watch the complete webinar video here.
Power of Indexing in PostgreSQL Webinar Video
The webinar was held on April 4, 2018 and covered the following topics: various ways to access data in PostgreSQL, different types of indexes supported by PostgreSQL, internals of BTree and BRIN indexes, overview of GIN and GiST indexes, how to find missing and unused indexes. Watch the complete webinar video here.
Advanced Development & Performance
This class covers important Intermediate and Advanced level details for developers interacting with PostgreSQL.
TPC-H performance since PostgreSQL 8.3/0 Comments/in 2ndQuadrant, PostgreSQL, Tomas' PlanetPostgreSQL /by Tomas Vondra
In the first part of this blog series, I’ve presented a couple of benchmark results showing how PostgreSQL OLTP performance changed since 8.3, released in 2008. In this part I plan to do the same thing but for analytical / BI queries, processing large amounts of data. There’s a number of industry benchmarks for testing […]
OLTP performance since PostgreSQL 8.3/5 Comments/in PostgreSQL, Tomas' PlanetPostgreSQL /by Tomas Vondra
A couple years ago (at the pgconf.eu 2014 in Madrid) I presented a talk called “Performance Archaeology” which showed how performance changed in recent PostgreSQL releases. I did that talk as I think the long-term view is interesting and may give us insights that may be very valuable. For people who actually work on PostgreSQL […]
Webinar: KNN Indexing in PostgreSQL [Follow Up]/0 Comments/in Webinars /by Bilal Ibrar
K-nearest neighbor is a proximity algorithm to find data in order of distance. Typically, this data cannot be indexed in advance, as both the centroid and the data can be in constant motion. PostgreSQL provides efficient searching algorithms for finding proximity data on the fly, including unique, high-performance indexing options. For a deeper understanding of […]