At Fri, 25 Jan 2019 08:14:19 +0000, "Tsunakawa, Takayuki" 
<tsunakawa.ta...@jp.fujitsu.com> wrote in 
<0A3221C70F24FB45833433255569204D1FB70EFB@G01JPEXMBYT05>
> Hi Horiguchi-san, Bruce,
> 
> From: Bruce Momjian [mailto:br...@momjian.us]
> > I suggest you go with just syscache_prune_min_age, get that into PG 12,
> > and we can then reevaluate what we need.  If you want to hard-code a
> > minimum cache size where no pruning will happen, maybe based on the system
> > catalogs or typical load, that is fine.
> 
> Please forgive me if I say something silly (I might have got lost.)
> 
> Are you suggesting to make the cache size limit system-defined and 
> uncontrollable by the user?  I think it's necessary for the DBA to be able to 
> control the cache memory amount.  Otherwise, if many concurrent connections 
> access many partitions within a not-so-long duration, then the cache eviction 
> can't catch up and ends up in OOM.  How about the following questions I asked 
> in my previous mail?

cache_memory_target does the opposit of limiting memory usage. It
keeps some amount of syscahe entries unpruned. It is intended for
sessions on where cache-effective queries runs intermittently.
syscache_prune_min_age also doesn't directly limit the size. It
just eventually prevents infinite memory consumption.

The knobs are not no-brainer at all and don't need tuning in most
cases.

> --------------------------------------------------
> This is a pure question.  How can we answer these questions from users?
> 
> * What value can I set to cache_memory_target when I can use 10 GB for the 
> caches and max_connections = 100?
> * How much RAM do I need to have for the caches when I set 
> cache_memory_target = 1M?
> 
> The user tends to estimate memory to avoid OOM.
> --------------------------------------------------

You don't have a direct control on syscache memory usage. When
you find a queriy slowed by the default cache expiration, you can
set cache_memory_taret to keep them for intermittent execution of
a query, or you can increase syscache_prune_min_age to allow
cache live for a longer time.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center


Reply via email to