Wydaje mi się, że buforowanie stron, które zostały zamienione, przynosi efekt przeciwny do zamierzonego. Jeśli zamieniasz strony, jaka jest zaleta, aby najpierw buforować je w pamięci, tylko po to, aby musieć je przenieść we właściwe miejsce? Nawet jeśli strony są zamieniane proaktywnie, czy nie ma większego sensu „po prostu” zamieniać je? Czy tak naprawdę zamiana pamięci podręcznej nie jest marnowaniem zasobów?
kernel
swap
cache
algorithms
txwikinger
źródło
źródło
Odpowiedzi:
Po kilku dalszych badaniach odkryłem, że termin SwapCached
/proc/meminfo
jest mylący. W rzeczywistości odnosi się do liczby bajtów, które są jednocześnie w pamięci i zamianie, tak że jeśli te strony nie są brudne, nie trzeba ich wymieniać.źródło
Nigdy o tym nie słyszałem i to też nie ma dla mnie większego sensu. Nadal uważam, że najlepsza jest stara stara zasada, aby upewnić się, że w ogóle się nie zamienia (z wyjątkiem oczywiście rezerwacji). Teoretycznie buforowanie rzeczy w bezpośrednio dostępnej pamięci, które ładuje się z czegoś tak wolnego jak dysk, ma wyraźną zaletę. Ale jeśli jesteś w stanie buforować strony, które chcesz zamieniać, to po co ponownie zamiana?
źródło
Zadaniem duplikowania stron między zamianą a pamięcią RAM jest uniknięcie oczekiwania na dysk, jeśli:
Coś z nich trzeba przeczytać
Muszą zostać eksmitowani, aby zrobić miejsce na coś innego
Gdyby były tylko w trybie wymiany, przypadek 1. oznaczałby czekanie, aż wyjdą z dysku; gdyby były tylko w pamięci RAM, przypadek 2. oznaczałby czekanie na wyjście na dysk.
(Oczywiście przypadek 2 jest w rzeczywistości trochę bardziej skomplikowany, ponieważ eksmisja takich stron jest oczywiście tańsza, więc jądro prawdopodobnie eksmituje je preferencyjnie, ale kwestia powinna być jasna.)
źródło