3 ms·
It depends on the workload (OLTP vs. OLAP, read-heavy vs. write-heavy). In our original research paper (https://db.cs.cmu.edu/papers/2017/p1009-van-aken.pdf htt
by apavlo 5y ago
It depends on the workload (OLTP vs. OLAP, read-heavy vs. write-heavy). In our original research paper (https://db.cs.cmu.edu/papers/2017/p1009-van-aken.pdf https://db.cs.cmu.edu/papers/2017/p1009-van-aken.pdf), we came up with an automated way of determining which knobs have the most impact on performance. We've tested up to Postgres v13 in the commercial version of OtterTune.
For most workloads, shared_buffers and work_mem have the most impact. For write-heavy OLTP workloads, tuning the WAL (max_wal_size) and autovacuum knobs (e.g., autovacuum_vacuum_scale_factor) have the most benefit. For read-mostly OLAP workloads, Postgres' parallel knobs (max_parallel_workers_per_gather) provide the most improvement.
But you need to also tune all the other knobs to get the last 15-40% of potential performance improvement. This is what OtterTune can do.
More info about how we select knobs: https://ottertune.com/blog/prevent-machine-learning-from-wrecking-your-database https://ottertune.com/blog/prevent-machine-learning-from-wre...