Да, можно очистить как общие буферы Postgres кэш И кэш ОС. Нижеприведенное решение предназначено для Windows ... другие уже предоставили решение для Linux.
Как уже говорили многие, для очистки общих буферов вы можете просто перезапустить Postgres (перезапускать сервер не нужно). Но простое выполнение этого не очистит кеш ОС.
Чтобы очистить кеш ОС, используемый Postgres, после остановки службы используйте превосходный RamMap ( https://technet.microsoft.com/en-us/sysinternals/rammap ) из превосходного Sysinternals Suite. После того, как вы запустите RamMap, просто нажмите «Пустой» -> «Пустой резервный список» в главном меню.
Перезапустите Postgres, и вы увидите, что следующий запрос будет чертовски медленным из-за отсутствия кеша.
Вы также можете выполнить RamMap, не закрывая Postgres, и, вероятно, получите желаемый результат «без кеша», поскольку, как уже было сказано, общие буферы обычно не оказывают большого влияния по сравнению с кешем ОС. Но для надежного теста я бы предпочел остановить postgres как все, прежде чем очищать кеш ОС, чтобы убедиться.
Примечание: AFAIK, я не рекомендую очищать другие вещи, кроме «Резервного списка» при использовании RamMap, потому что другие данные каким-то образом используются, и вы можете потенциально вызвать проблемы / потерять данные, если вы это сделаете. Помните, что вы очищаете память, используемую не только файлами postgres, но и любыми другими приложениями и ОС.
С уважением, Тьяго Л.