估计PostgreSQL缓冲区缓存中可用的内存量?

时间:2013-07-22 17:45:43

标签: sql postgresql

我正在调整我的PostgreSQL数据库effective_cache_size。 PostgreSQL文档引用PostgreSQL缓冲区高速缓存中的预期可用内存来计算可用于磁盘高速缓存的预期内存。我怎么估计这个? shared_buffers是为缓冲区缓存分配的唯一内存吗?

2 个答案:

答案 0 :(得分:3)

effective_cache_size表示机器的总内存减去除了磁盘缓存之外的其他内容。

来自格雷格的史密斯5-Minute Introduction to PostgreSQL Performance

  应该将

effective_cache_size 设置为剩余的内存量   考虑到操作使用的内容后的磁盘缓存   系统,专用的PostgreSQL内存和其他应用程序

shared_buffers在这句话中被认为是“专用的PostgreSQL内存”,但除此之外,它与effective_cache_size无关。

在Linux上,如果在系统处于典型内存使用状态(运行的所有应用程序和缓存都很热)时运行freecached字段为effective_cache_size提供了良好的值。

如果您使用生成图表的监控工具,您可以一目了然地查看缓存的大小。

答案 1 :(得分:2)

专用Postgres服务器的一个典型建议是将effective_cache_size设置为可用RAM的大约3/4。用于设置合理默认值的好工具是pgtune,可在此处找到:https://github.com/gregs1104/pgtune