effective_cache_size

As mentioned in the last chapter, PostgreSQL is expected to have both its own dedicated memory (shared_buffers) as well as utilize the filesystem cache. In some cases, when making decisions such as whether it is efficient to use an index or not, the database compares sizes it computes against the effective sum of all these caches; that's what it expects to find in effective_cache_size.

The same rough rule of thumb that would put shared_buffers at 25% of system memory would set effective_cache_size to between 50 and 75% of RAM. To get a more accurate estimate, first observe the size of the filesystem cache:

  • Unix-like systems: Add the free and cached numbers shown by the free or top commands to estimate the filesystem ...

Get PostgreSQL 10 High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.