首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >work_mem不使用ram

问work_mem不使用ram
EN

Database Administration用户
提问于 2021-08-04 22:10:38
回答 1查看 710关注 0票数 0

我已经将shared_buffers设置为256 to。

使用pg_buffercache扩展,我看到所有的缓冲区都在使用:

代码语言:javascript
复制
SELECT pg_size_pretty(COUNT(*)*8192) as used FROM pg_buffercache;
 used
----------------
 256 MB

现在的问题是,当我使用docker查看数据库容器内存时,它显示:

代码语言:javascript
复制
NAME                CPU %               MEM USAGE / LIMIT   MEM % 
db                  0.00%               31.07MiB / 1GiB     3.03%

shared_buffers内存存储在哪里?不应该在ram中并在docker stats中显示吗?

EN

回答 1

Database Administration用户

发布于 2021-08-05 01:09:44

当然,这与work_mem无关。

无论pg_buffercache是否曾经用于任何事情,每个缓冲区插槽都有一行。使用count(relfileode),而不是count(*),只计算实际使用的。

我不认为pg_buffercache有任何方法可以获得高水位,最接近的可能是:

代码语言:javascript
复制
select max(bufferid) from pg_buffercache where relfilenode is not null;

但是,如果所有最高编号的缓冲区都属于一个被删除或截断的表,那么这会给出太低的答案(为了您的目的)。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/297606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档