我已经将shared_buffers设置为256 to。
使用pg_buffercache扩展,我看到所有的缓冲区都在使用:
SELECT pg_size_pretty(COUNT(*)*8192) as used FROM pg_buffercache;
used
----------------
256 MB现在的问题是,当我使用docker查看数据库容器内存时,它显示:
NAME CPU % MEM USAGE / LIMIT MEM %
db 0.00% 31.07MiB / 1GiB 3.03%shared_buffers内存存储在哪里?不应该在ram中并在docker stats中显示吗?
发布于 2021-08-05 01:09:44
当然,这与work_mem无关。
无论pg_buffercache是否曾经用于任何事情,每个缓冲区插槽都有一行。使用count(relfileode),而不是count(*),只计算实际使用的。
我不认为pg_buffercache有任何方法可以获得高水位,最接近的可能是:
select max(bufferid) from pg_buffercache where relfilenode is not null;但是,如果所有最高编号的缓冲区都属于一个被删除或截断的表,那么这会给出太低的答案(为了您的目的)。
https://dba.stackexchange.com/questions/297606
复制相似问题