Так, можна очистити як загальний кеш postgres кеш, так і кеш ОС. Нижче наведене рішення призначене для Windows ... інші вже надали рішення Linux.
Як багато людей вже говорили, для очищення загальних буферів ви можете просто перезапустити Postgres (не потрібно перезавантажувати сервер). Але це просто не очистить кеш ОС.
Щоб очистити кеш ОС, який використовує Postgres, після зупинки служби використовуйте чудовий RamMap ( https://technet.microsoft.com/en-us/sysinternals/rammap ) із чудового Sysinternals Suite. Після запуску RamMap просто натисніть "Порожній" -> "Порожній список очікування" в головному меню.
Перезапустіть Postgres, і ви побачите, що наступний ваш запит буде повільно повільним через відсутність кешу.
Ви також можете виконати RamMap, не закриваючи Postgres, і, ймовірно, будуть отримані результати "відсутність кешу", оскільки, як вже говорили люди, спільні буфери зазвичай дають незначний вплив у порівнянні з кешем ОС. Але для надійного тесту я б скоріше зупинив postgres, як і всі, перш ніж очистити кеш ОС, щоб переконатися.
Примітка: AFAIK, я не рекомендую очищати інші речі, крім "Списку в режимі очікування" під час використання RamMap, оскільки інші дані якимось чином використовуються, і ви можете потенційно спричинити проблеми / втратити дані, якщо це зробите. Пам’ятайте, що ви очищуєте пам’ять не лише файлами postgres, але й будь-якою іншою програмою та ОС.
З повагою, Тьяго Л.