• Tomas Vondra's avatar
    Collect statistics about SLRU caches · 28cac71b
    Tomas Vondra authored
    There's a number of SLRU caches used to access important data like clog,
    commit timestamps, multixact, asynchronous notifications, etc. Until now
    we had no easy way to monitor these shared caches, compute hit ratios,
    number of reads/writes etc.
    
    This commit extends the statistics collector to track this information
    for a predefined list of SLRUs, and also introduces a new system view
    pg_stat_slru displaying the data.
    
    The list of built-in SLRUs is fixed, but additional SLRUs may be defined
    in extensions. Unfortunately, there's no suitable registry of SLRUs, so
    this patch simply defines a fixed list of SLRUs with entries for the
    built-in ones and one entry for all additional SLRUs. Extensions adding
    their own SLRU are fairly rare, so this seems acceptable.
    
    This patch only allows monitoring of SLRUs, not tuning. The SLRU sizes
    are still fixed (hard-coded in the code) and it's not entirely clear
    which of the SLRUs might need a GUC to tune size. In a way, allowing us
    to determine that is one of the goals of this patch.
    
    Bump catversion as the patch introduces new functions and system view.
    
    Author: Tomas Vondra
    Reviewed-by: Alvaro Herrera
    Discussion: https://www.postgresql.org/message-id/flat/20200119143707.gyinppnigokesjok@development
    28cac71b
pgstatfuncs.c 48.1 KB