Общий буфер в postgres - PullRequest
       5

Общий буфер в postgres

8 голосов
/ 30 мая 2011

Мне любопытно, какую роль играет общий буфер в postgres.Общий буфер поддерживает все недавно посещенные страницы диска и грязные страницы.Если требуется ввести новую страницу и в общем буфере не осталось места, грязная страница жертвы записывается обратно на диск.

Однако, я запутался в этом утверждении - PostgreSQL зависит от ОС для кэширования.(http://www.varlena.com/GeneralBits/Tidbits/perf.html#shbuf)"

Как postgres зависит от ОС для кэширования? И как это меняет поведение общего буфера?

Ответы [ 2 ]

8 голосов
/ 15 октября 2012

Postgresql использует кеш ОС и собственный кеш данных.Они полезны в зависимости от использования вашей базы данных.

Кэш ОС очень быстрый, но простой: он удаляет старые данные вместе с новыми.Это полезно для очень разносторонних результатов запроса.Кэш PG медленнее (все же намного быстрее, чем диск), но он хранит счетчики использования наиболее часто используемых данных.Полезно для повторяющихся результатов / индекса.

5 голосов
/ 21 июня 2011

Я думаю эта ссылка более понятна (и более актуальна).

Насколько я понимаю, в shared_buffers процессы PostgreSQL работают и обмениваются информацией, но при превышении определенного предела (от 15% до 25% ОЗУ сервера) уменьшение отдачи делает более интересным выделение ОС дополнительной оперативной памяти для выполнения самого кэширования. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...