Wszystko będzie dobrze, nawet z 1GiB (i prawdopodobnie mniej) zamiany. Mój komputer służbowy zwykle używa nie więcej niż 140-150 MiB. Gigabajt jest w tym przypadku zbyt dużym zapasem.
O ile nie wykonasz zadań obliczeniowych, które wymagają zestawów danych w setkach gigabajtów i (ten jest ważny!) Dostęp do danych jest mniej lub bardziej jednorazowy, nigdy nie będziesz chciał wymiany dużo większej. Ale z drugiej strony po prostu mapowanie pamięci pliku danych działa równie dobrze dla tej aplikacji.
Ale więcej zamiany pomaga więcej, prawda? Więcej wszystkiego jest zawsze lepsze!
Zastanów się, jaką różnicę zrobi zamiana, powiedzmy, 16GiB (lub pomyśl o 64GiB). Jeśli nigdy nie użyjesz tych 16GiB, równie dobrze możesz nie odłożyć ich na bok. Ale jeśli ich użyjesz, co się stanie? Dysk w porównaniu z pamięcią główną jest wyjątkowo wolny. Nawet z dyskiem SSD SATA-600 przesyłanie 16 GB zajmuje od 30 do 40 sekund i 2-4 razy dłużej w niektórych innych konfiguracjach.
Teraz ktoś nieuchronnie sprzeciwi się temu, że raczej przeglądasz kilkanaście stron 4kiB, a nie 16GiB za jednym razem. Chociaż jest to prawda, to prawda jest ważna. Jeśli potrzebujesz tylko zamienić kilka stron, nie potrzebujesz 16GiB swapu, ale jeśli potrzebujesz 16GiB swapu, to również je przeniesiesz (w ten czy inny sposób).
Teoretycznie 99,9% wszystkich użytkowników może nawet korzystać z maszyny 64GiB (lub dowolnej maszyny 8 + GiB) bez zamiany i najprawdopodobniej nigdy nie zauważy czegoś brakuje. Nie jest to jednak wskazane.
Po pierwsze, jest on nieoptymalny, ponieważ system operacyjny ma mniej możliwości wyboru, co może odrzucić, gdy zabraknie pamięci fizycznej. Są dwie rzeczy, które może zrobić: zamienić coś, co nie jest używane, lub wyrzucić strony z bufora bufora. Jeśli nie masz zamiany, możesz zrobić tylko jedną rzecz. Wyrzucanie stron z bufora bufora jest nieszkodliwe, ale może znacząco wpłynąć na wydajność.
Po drugie, prywatne anonimowe mapowania mogą po prostu zawieść, jeśli nie będzie wymiany. Zwykle tak się nie dzieje, ale w końcu, gdy nie ma wystarczającej ilości pamięci fizycznej, aby zaspokoić je wszystkie, i nie ma wymiany, system operacyjny ma tylko ten wybór, z wyjątkiem ...
Po trzecie, przerażający zabójca OOM może się uruchomić , Co oznacza, że mniej lub bardziej losowy proces zostaje zabity. Nie, dziękuję. To nie jest coś, co chcesz mieć.
Biorąc to pod uwagę, porady takie jak potrzeba zamiany X razy ilość zainstalowanej pamięci RAM pochodzą od ludzi, którzy powtarzają coś, co słyszeli (i nie rozumieli!) Od kogoś, kto powtarzał coś, co słyszeli (i nie rozumieli!) Dekady temu.
Reguła „użyj 2 razy więcej pamięci RAM” była łatwą do zapamiętania praktyczną regułą w latach 80. i 90. XX wieku, nigdy nie była „złotą prawdą” (po prostu coś, co działało OK dla większości użytkowników) i obecnie nie ma zastosowania .
Powinieneś mieć rozsądną ilość swapów, na które możesz sobie łatwo pozwolić (powiedzmy, gigabajt), aby system operacyjny mógł znaleźć jakieś przestarzałe rzeczy, a świat nie kończy się natychmiast, gdy raz poprosisz o trochę więcej pamięci. Ale to jest to.
mmap
nad przydzieleniem stron zestawu roboczego. Wtedy twoja ilość swapów będzie dokładnie taka, jakiej potrzebujesz do swojego procesu.