2011-05-30 76 views
8

我很好奇共享缓冲区在postgres中所扮演的角色。共享缓冲区维护所有最近访问过的磁盘页面和脏页面。如果需要引入新页面并且共享缓冲区中没有剩余空间,则将受害者脏页面写回磁盘。postgres中的共享缓冲区

但是,我对这个说法感到困惑 - PostgreSQL依赖于操作系统进行缓存。 (http://www.varlena.com/GeneralBits/Tidbits/perf.html#shbuf)”

如何Postgres的依赖操作系统的缓存呢?它是如何改变共享缓存的行为?

+2

看到这个冗长的线程:http://archives.postgresql.org/pgsql-performance/2011-05/msg00369.php – 2011-05-30 12:16:21

回答

4

我觉得this link更清晰(更先进的日期)。

我的理解是的shared_buffers就是PostgreSQL处理工作和共享信息,但超过一定限度(服务器RAM的15%〜25%)收益递减使得将更多RAM留给操作系统执行缓存本身更有意思。

7

Postgresql使用OS缓存a找到自己的数据缓存。根据您的数据库使用情况,这两者很有用。

操作系统缓存非常快速但基本:它用新的操作删除旧数据。这对于非常灵活的查询结果非常有用。 PG缓存速度较慢(仍比磁盘快得多),但它保留使用率最高的数据的使用计数器。适用于经常性结果/指数。