我很好奇共享緩衝區在postgres中所扮演的角色。共享緩衝區維護所有最近訪問過的磁盤頁面和髒頁面。如果需要引入新頁面並且共享緩衝區中沒有剩餘空間,則將受害者髒頁面寫回磁盤。postgres中的共享緩衝區
但是,我對這個說法感到困惑 - PostgreSQL依賴於操作系統進行緩存。 (http://www.varlena.com/GeneralBits/Tidbits/perf.html#shbuf)」
如何Postgres的依賴操作系統的緩存呢?它是如何改變共享緩存的行爲?
我很好奇共享緩衝區在postgres中所扮演的角色。共享緩衝區維護所有最近訪問過的磁盤頁面和髒頁面。如果需要引入新頁面並且共享緩衝區中沒有剩餘空間,則將受害者髒頁面寫回磁盤。postgres中的共享緩衝區
但是,我對這個說法感到困惑 - PostgreSQL依賴於操作系統進行緩存。 (http://www.varlena.com/GeneralBits/Tidbits/perf.html#shbuf)」
如何Postgres的依賴操作系統的緩存呢?它是如何改變共享緩存的行爲?
我覺得this link更清晰(更先進的日期)。
我的理解是的shared_buffers就是PostgreSQL處理工作和共享信息,但超過一定限度(服務器RAM的15%〜25%)收益遞減使得將更多RAM留給操作系統執行緩存本身更有意思。
Postgresql使用OS緩存a找到自己的數據緩存。根據您的數據庫使用情況,這兩者很有用。
操作系統緩存非常快速但基本:它用新的操作刪除舊數據。這對於非常靈活的查詢結果非常有用。 PG緩存速度較慢(仍比磁盤快得多),但它保留使用率最高的數據的使用計數器。適用於經常性結果/指數。
看到這個冗長的線程:http://archives.postgresql.org/pgsql-performance/2011-05/msg00369.php – 2011-05-30 12:16:21