Tak, to jest możliwe, aby usunąć zarówno współdzielony cache bufory postgres'owy I cache OS. Rozwiązanie poniżej jest przeznaczone dla systemu Windows ... inni już podali rozwiązanie linux.
Jak wiele osób już powiedziało, aby wyczyścić udostępnione bufory, możesz po prostu zrestartować Postgres (nie ma potrzeby ponownego uruchamiania serwera). Ale samo zrobienie tego nie wyczyści pamięci podręcznej systemu operacyjnego.
Aby wyczyścić pamięć podręczną systemu operacyjnego używaną przez Postgres, po zatrzymaniu usługi użyj doskonałej RamMap ( https://technet.microsoft.com/en-us/sysinternals/rammap ) z doskonałego pakietu Sysinternals. Po uruchomieniu RamMap, po prostu kliknij „Empty” -> „Empty Standby List” w menu głównym.
Zrestartuj Postgres, a zobaczysz, że następne zapytanie będzie cholernie wolne z powodu braku pamięci podręcznej.
Możesz również uruchomić RamMap bez zamykania Postgresa i prawdopodobnie uzyskasz pożądane wyniki „bez pamięci podręcznej”, ponieważ jak już mówiono, współdzielone bufory zwykle mają niewielki wpływ w porównaniu z pamięcią podręczną systemu operacyjnego. Ale dla wiarygodnego testu wolałbym raczej zatrzymać postgres, jak wszystko przed wyczyszczeniem pamięci podręcznej systemu operacyjnego, aby się upewnić.
Uwaga: AFAIK, nie polecam usuwania innych rzeczy poza "Listą gotowości" podczas używania RamMap, ponieważ inne dane są w jakiś sposób używane i możesz potencjalnie spowodować problemy / utratę danych, jeśli to zrobisz. Pamiętaj, że czyścisz pamięć używaną nie tylko przez pliki postgres, ale także inne aplikacje i system operacyjny.
Pozdrawiam, Thiago L.