Có, có thể xóa cả bộ đệm chia sẻ bộ đệm postgres VÀ bộ đệm hệ điều hành. Giải pháp dưới đây dành cho Windows ... những người khác đã đưa ra giải pháp linux.
Như nhiều người đã nói, để xóa bộ đệm được chia sẻ, bạn chỉ cần khởi động lại Postgres (không cần khởi động lại máy chủ). Nhưng chỉ làm điều này sẽ không xóa bộ nhớ cache của hệ điều hành.
Để xóa bộ nhớ cache của hệ điều hành được Postgres sử dụng, sau khi dừng dịch vụ, hãy sử dụng Bản đồ RamMap vượt trội ( https://technet.microsoft.com/en-us/sysinternals/rammap ), từ Sysinternals Suite xuất sắc. Khi bạn thực thi RamMap, chỉ cần nhấp vào "Empty" -> "Empty Standby List" trong menu chính.
Khởi động lại Postgres và bạn sẽ thấy bây giờ truy vấn tiếp theo của bạn sẽ rất chậm do không có bộ nhớ cache nào cả.
Bạn cũng có thể thực thi RamMap mà không cần đóng Postgres và có thể sẽ có kết quả "không có bộ nhớ cache" mà bạn muốn, vì như mọi người đã nói, bộ đệm được chia sẻ thường ít tác động so với bộ đệm hệ điều hành. Nhưng đối với một bài kiểm tra đáng tin cậy, tôi muốn dừng postgres như tất cả trước khi xóa bộ nhớ cache của hệ điều hành để đảm bảo.
Lưu ý: AFAIK, tôi không khuyên bạn nên xóa những thứ khác ngoài "Danh sách chờ" khi sử dụng RamMap, vì dữ liệu khác đang được sử dụng bằng cách nào đó và bạn có thể gây ra sự cố / dữ liệu lỏng lẻo nếu bạn làm điều đó. Hãy nhớ rằng bạn đang xóa bộ nhớ không chỉ được sử dụng bởi các tệp postgres mà còn với bất kỳ ứng dụng và hệ điều hành nào khác.
Trân trọng, Thiago L.