Czy możesz mieć za dużo wymiany?

16

Zastanawiałem się, czy możesz mieć zbyt dużą partycję wymiany. Jeśli tak, kiedy partycja wymiany jest zbyt duża? Jakie są wady / złe skutki posiadania zbyt dużej partycji wymiany (nawet jeśli mam dużo miejsca na dysku)?

Jeśli nie, jakie są korzyści z posiadania więcej niż zalecana przestrzeń wymiany?

An0n
źródło
5
Oczywistym minusem jest to, że marnujesz miejsce na dysku. OTOH: jeśli masz „za dużo” zamiany (powiedzmy 30 GB w systemie 4 GB), wtedy źle zachowujące się aplikacje znacznie później zabrakną pamięci, co spowolni twój system. Porządnie zachowujące się aplikacje (bez wycieków pamięci) po prostu go nie używają. (Przyznaję, to uproszczony pogląd).
PerlDuck,
Zgadzam się z @PerlDuck - „zbyt dużo zamiany” zajmuje tylko miejsce na dysku. Twój system będzie działał wolno, jeśli zacznie używać swap, w takim przypadku albo uruchom mniej aplikacji, aplikacje o mniejszej masie, albo zdobądź więcej pamięci RAM
Panther
Wiem, więc jeśli masz wystarczająco dużo pamięci RAM, inne niż użycie zbyt dużej przestrzeni dyskowej, czy są jakieś wady? Z wyjątkiem „niewłaściwie zachowujących się” aplikacji offcourse, jak powiedział PerlDuck.
An0n
1
VTD Wszystkie pytania w Edycji uzasadniają zmianę zbyt bliskiego powodu ze zduplikowanego na offowy jako zbyt szeroki. OP jest oczywiście zdezorientowany, ale meta lub czat to lepsze miejsce do dyskusji.
WinEunuuchs2Unix
3
W przypadku, gdy ludzie nie są pewni, o czym mówią @PerlDuck (i Panther), zauważ, że nawet jeśli masz efektywnie nieograniczone miejsce na dysku, posiadanie większej przestrzeni do zamiany spowoduje, że procesy powinny zostać zakończone, a które w przeciwnym razie byłyby szybkie zakończone automatycznie, najpierw spowolnij system do indeksowania . Myślę, że komentarz PerlDuck również zadziała jako odpowiedź. Jeśli w końcu otworzymy to pytanie, być może można dodać odpowiedź na temat wad znacznie większej liczby wymian niż jest to konieczne. Ponieważ są wady.
Eliah Kagan

Odpowiedzi:

8

Nie

Na pierwszy rzut oka nie można mieć zbyt dużej wymiany, ponieważ można ją wymienić jako sposób na zwiększenie pamięci RAM. Właściwie to nie zwiększa pamięci RAM, tylko udaje, że: Jeśli masz 8 GB prawdziwej pamięci RAM i skonfigurowano przestrzeń wymiany, powiedzmy 24 GB, wtedy twoje programy mogą przydzielić i użyć do 8 + 24 = 32 GB pamięci co na początku brzmi dobrze.

Ale

Jeśli uruchomisz aplikacje, które mają wycieki pamięci lub nie są tak naprawdę przeznaczone do pracy z 8 GB pamięci (na przykład do edycji wideo), wówczas aplikacje te zaczną korzystać z tej przestrzeni wymiany, a zamiana jest wolna. Im więcej miejsca wymiany jest aktywnie wykorzystywane przez te aplikacje, tym bardziej system jest zajęty jedynie przenoszeniem pamięci do iz dysku. Spowoduje to drastyczne spowolnienie ogólnej reakcji systemu i pogorszy wrażenia użytkownika.

W końcu - gdy przestrzeń wymiany zostanie wyczerpana - niektóre aplikacje staną w obliczu braku pamięci i zostaną zabite przez OOM_Killer jądra .

Z wiki :

Typowy przypadek OOM na nowoczesnych komputerach ma miejsce, gdy system operacyjny nie jest w stanie utworzyć więcej pamięci wirtualnej, ponieważ wszystkie jego potencjalne urządzenia do tworzenia kopii zapasowych zostały zapełnione.

Wniosek

Dlatego jedną z wad posiadania zbyt dużej przestrzeni wymiany jest: im więcej masz, tym później ta sytuacja OOM występuje i tym dłużej będziesz musiał cierpieć z powodu opóźnionego i niereagującego systemu.

Innym oczywistym minusem jest oczywiście marnowanie miejsca na dysku, ale w dzisiejszych czasach może to nie być tak ważne.

PerlDuck
źródło
+1 za rozpatrzenie przypadku krawędzi. Osobiście nie jestem wielkim fanem wymiany, ponieważ hibernacja dotyczy niedźwiedzi, a moje systemy są zbyt zajęte. ;-) Twoje zdrowie.
Elder Geek,
@ElderGeek LOL. W rzeczywistości Eliah Kagan kazał mi zamienić mój prosty komentarz w odpowiedź. Przekonał mnie, że wspomniany minus posiadania zbyt dużej ilości swapów jest sprawą kluczową i może być ważny dla innych. Jestem z tobą i mam skonfigurowaną małą wymianę (2 GB z 8 GB pamięci RAM) i prawie nigdy się nie dotyka.
PerlDuck
Miałem podobne wyniki z podobnymi ustawieniami, chciałbym, żeby pogłoska o wymianie 2x w końcu umarła.
Starszy Geek
5

Nie ma bezpośrednich wad dużej powierzchni wymiany. W sposobie zarządzania przez jądro wzrost ilości przestrzeni wymiany powyżej tego, co jest wystarczające, nie ma wpływu lub ma znikomy wpływ na wydajność.

Jedynym minusem „zbyt dużej” przestrzeni wymiany jest to, że nie można użyć tej przestrzeni do przechowywania.

David Foerster
źródło
1
@ An0n: Myślę, że przydzielenie wszystkich ~ 6 TB aktualnie podłączonych do mojego komputera byłoby dość dużym minusem jako przestrzeń wymiany. Gdzie miałbym umieścić całą moją muzykę…?
David Foerster,
2
@ An0n: Czym jest komputer, jeśli wszystko, co może zrobić, to uruchomić komputer, a następnie nie przechowywać żadnych przydatnych danych? To brzmi bardziej jak drogi ogrzewacz pomieszczeń.
David Foerster,
1
@ An0n: Jasne, założyłem tyle samo, ale nie rozumiesz sedna sprawy. Myślę, że możemy się zgodzić, że aby komputer był użyteczny, musi być w stanie osiągnąć użyteczny stan systemu (w tym możliwość rozruchu) i mieć dostęp do pamięci, z której użytkownik może korzystać dla swoich danych osobowych. Wymaga to, aby nie zajmowała go przestrzeń wymiany.
David Foerster,
2
Oczywiście, że jest względny. Podobnie jak „za dużo” jest względne. Jeśli mam system rozruchowy i całą wolną przestrzeń przydzielam jako przestrzeń wymiany, nie jest to już dla mnie przydatne z powodu braku wolnego miejsca, dopóki nie zmienię konfiguracji systemu w sposób, który kończy się na większej ilości wolnego miejsca. W tym sensie przestrzeń wymiany byłaby „zbyt duża” w tym czasie, czyniąc system bezużytecznym w tym czasie. W każdym razie nie jestem tutaj, aby kłócić się z tobą o semantykę słów.
David Foerster,
1
@ An0n Aby podkreślić tutaj punkt, przestrzeń wymiany to przestrzeń, której nie można użyć do niczego innego. Miejsce na dysku kosztuje. Jeśli twoje miejsce na dysku jest ograniczone (moje ma tylko 32 GB), chcesz zachować jak najwięcej z nich, aby móc swobodnie instalować programy i zapisywać pliki z zawartością w nich, takie jak muzyka. Z tego powodu ludzie zazwyczaj starają się ograniczyć swap do minimum. Zamiana jest czymś, czego system może potrzebować do wydajnego działania, co w innym przypadku nie miałoby żadnej wartości dla użytkownika. Ogólnie rzecz biorąc, chcemy, aby nasz system wykorzystywał tylko niezbędne zasoby i pozostawiał nam wiele do zabawy.
Zanna
4

Nie odczujesz żadnych innych wad oprócz mniejszej ilości miejsca na dysku, myślę, że w dzisiejszych czasach koncepcja 2x ilości pamięci RAM jest przestarzała w większości systemów. Zwykle zalecam używanie tego samego rozmiaru pamięci RAM do zamiany pamięci w laptopach, aby dać ci możliwość hibernacji komputera bez utraty danych z powodu niestabilności pamięci RAM.

Jedynymi przypadkami, w których rozważałbym użycie więcej niż 1x rozmiaru RAM dla partycji wymiany, jest to, że myślisz, że zamierzasz zwiększyć swój rozmiar RAM w krótkim czasie. Lub jeśli planujesz użyć systemu, w którym będziesz przechowywać w pamięci podręcznej ilość pamięci używanej przez programy nieużywane w tym samym momencie.

Mam nadzieję, że mój punkt widzenia był wystarczająco jasny i powtarzam, że nie sądzę, abyś miał problem z posiadaniem zbyt dużej ilości pamięci wymiany.

Miłego dnia!

zurg
źródło
2
W ogóle nie używam wymiany, jeśli RAM> 2-4 Gb na pulpicie jednego użytkownika.
Panther
1
@Panther Dlaczego nie? I nie chodzi o to, jak i kiedy go używasz. Chodzi o rozmiar i użycie.
An0n
2
Czy rozważałeś wpływ wycieków pamięci?
Starszy Geek
@ElderGeek Cześć, nie, nie rozważyłem tego. Podoba mi się twoja odpowiedź, nie wiedziałem o problemie z wyciekiem pamięci!
zurg
2

Ile SWAP naprawdę potrzebuje hibernacji?

To błędne przekonanie, że potrzebujesz pamięci RAM x 2 dla rozmiaru SWAP, gdy używasz hibernacji. Potrzeby wielkość wymiany będzie wielkość używanych RAM nie pamięci RAM zainstalowanej . Ogólnie rozmiar wymiany musi wynosić 2/5 zainstalowanej pamięci RAM. Aby dowiedzieć się, jaka jest minimalna ilość pamięci RAM potrzebnej do użycia:

$ cat /sys/power/image_size
3153907712

Na tym 8 GB pamięci RAM wymagane jest minimum 3 GB do hibernacji.

Możesz dostosować wartości image_sizedla mniejszego rozmiaru zamiany z ryzykiem niepowodzenia. Możesz go dostosować, aby uzyskać większy rozmiar zamiany i ewentualnie przyspieszyć hibernację.

Odniesienie: https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


16 MB pamięci RAM w 1995 r., Różne zasady dotyczące 16 GB pamięci RAM w 2018 r

W czasach, gdy miałeś 16 MB Ram, zamiana x 2 na 32 MB na dysku twardym 720 MB miała sens. Trochę historii pamięci RAM i HDD w tym artykule z Washington Post z 1995 roku .

23 lata później niektóre artykuły techniczne z tego 1995 roku (choć nie znalazłem) mogą wprowadzić w błąd nowych użytkowników. Znalazłem jednak artykuł z 2007 roku zalecający SWAP = RAM x 2 .

W 1995 roku 32 MB wymiany z 760 MB HDD stanowiło 4% HDD. Rzeczywiście partycja wymiany mogła być często używana w 1995 r. Dzisiaj w 2018 r. 16 GB RAM x 2 na 32 GB SWAP na twoim 256 GB SSD nie ma takiego samego sensu, ponieważ zajmuje 13% SSD. Dzisiaj moja partycja SWAP o pojemności 8 GB nie jest w ogóle używana, chyba że zmuszę ją do jej wypełnienia podczas testowania OOM-Killera: Google Chrome zajmie moją pamięć do momentu, w którym spowoduje zawieszenie się komputera. Co mogę zrobić, aby temu zapobiec? .

WinEunuuchs2Unix
źródło
+1 za wskazanie błędnego zrozumienia często reklamowanej reguły 2x, która jest całkowitą koją.
Starszy Geek
@ElderGeek Dziękujemy. Dodałem sekcję historii, kiedy 16 MB RAM razy 2 dla 32 MB SWAP mogło mieć sens.
WinEunuuchs2Unix
Inną rzeczą do rozważenia jest SSD kontra HDD. Czy chcemy, aby na dysku SSD było dużo odczytów / zapisów, co przyspieszy jego awarię w tej części dysku SSD (czy jest to mit)? W moim systemie 32 GB RAM użyłem 2 GB napędu Velociraptor Drive dla SWAP, ale bez zamiaru hibernacji, wciąż nie jestem pewien, czy to jest w porządku, być może mógłbym nie mieć zamiany ??? Ale gdybym hibernował, może 4 GB wystarczyłoby, ale są szanse, że użyłbym 20 GB przeglądarki, a wtedy 4 GB nie wystarczyłoby ???
NZ Dev
@NZDev Mam swap na SSD, ale rzadko jest używany. Ostatnim razem sprawdziłem, czy pozostało 100% życia po 1 roku użytkowania. Aby zobaczyć procent pozostałego życia: askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix
1

Co to jest SWAP:

Przestrzeń wymiany w systemie Linux jest używana, gdy ilość pamięci fizycznej (RAM) jest pełna. Jeśli system potrzebuje więcej zasobów pamięci, a pamięć RAM jest pełna, nieaktywne strony w pamięci są przenoszone do przestrzeni wymiany. Chociaż przestrzeń wymiany może pomóc komputerom z małą ilością pamięci RAM, nie należy jej traktować jako zamiennika większej ilości pamięci RAM. Miejsce wymiany znajduje się na dyskach twardych, które mają wolniejszy czas dostępu niż pamięć fizyczna.

Przestrzeń wymiany może być dedykowaną partycją wymiany (zalecane), plikiem wymiany lub kombinacją partycji wymiany i plików wymiany.

Zamiana powinna być równa 2x fizycznej pamięci RAM.


Zalety:

Zapewnia miejsce na przepełnienie, gdy pamięć całkowicie się zapełnia Może przenieść rzadko potrzebne przedmioty z szybkiej pamięci Umożliwia hibernację

Niedogodności:

Zajmuje miejsce na dysku twardym, ponieważ partycje SWAP nie zmieniają się dynamicznie Może zwiększyć zużycie dysku twardego Nie musi poprawiać wydajności (patrz poniżej)


Gdy partycje SWAP „Nie pomagaj” jak w „nie warto w porównaniu do dodatkowej pamięci”:

Jeśli twój dysk twardy ma tylko 5400 obr./min i masz mało pamięci RAM, powiedzmy> 2 GB. Dlaczego ? Ponieważ system stale chciał uzyskać dostęp do partycji SWAP, w końcu stanie się bardzo wolny. Mimo że masz teraz miejsce w pamięci, wszystko na partycji SWAP musi zostać przeniesione z powrotem. Ponieważ system będzie działał wolno, przydział pozostanie na partycji SWAP. Można to naprawić tylko poprzez ponowne uruchomienie. Co i tak zajmie trochę czasu, ponieważ system musi usunąć wszystko z partycji SWAP przed zamknięciem.


** Wstrząs: **

Jeśli chcesz móc hibernować swój komputer, powinieneś mieć partycję SWAP. Rozmiar tej partycji powinien być równy rozmiarowi zainstalowanej pamięci plus dodatkowe 10–25%, aby pozostawić miejsce na wszystkie elementy, które zostały już przeniesione na partycję SWAP.

Jeśli chcesz tylko niewielkiego zwiększenia wydajności (i masz dysk twardy o prędkości co najmniej 7200 obr./min), możesz dodać partycję SWAP, jeśli chcesz, ale nie jest to konieczne, chyba że masz mniej niż 4 GB zainstalowanej pamięci. Rozmiar tego może być dowolny. Polecam jednak 2x RAM jako punkt. JEŚLI masz wystarczająco dużo miejsca do przechowywania.

Jeśli masz dysk twardy o prędkości 5400 obr./min, nie powinieneś tworzyć partycji SWAP tylko dlatego, że wąskie gardło pogorszy stan twojego komputera. Jeśli jednak absolutnie chcesz mieć SWAP, możesz nadal tworzyć partycję, korzystając z tych samych wskazówek dotyczących rozmiarów, które opisano powyżej - ale zmień wartość swapiness na coś znacznie niższego.



Moja opinia:

Jednak w każdym przypadku, jeśli używasz Ubuntu jako głównego systemu operacyjnego do codziennego użytku, zalecam 2x rozmiar pamięci RAM. Ponieważ nie instalujesz Ubuntu tylko dlatego, że masz stary komputer. Ale ponieważ chcesz używać systemu jako głównego systemu operacyjnego.

W razie potrzeby kup raczej dodatkowy sprzęt zamiast dostosowywać partycje systemowe, aby działało. Jeśli kupisz grę, upewnij się, że Twój system jest „aktualny”, zamiast dostosowywać ustawienia, aby była „możliwa do grania”.

Możesz mieć więcej miejsca, SWAP, prędkość, moc, zamiast mieć za mało lub trzeba później wszystko zmienić. Ponieważ potrzebujesz SWAP lub miejsca, kupiłeś RAM? Lub trzeba kupić barana szybko, ponieważ pękło jedno gniazdo pamięci lub patyk.

An0n
źródło
Re: twój wniosek To po prostu nie ma sensu, lub inny sposób na określenie tego, gdzie wyznaczamy granicę. np. RAM 8GB plus 16GB swap: Co jeśli użyję 8GB RAM i 9GB swap, to nadal nie będzie wystarczająco dużo miejsca na hibernację. Co więc daje? Innymi słowy, bez względu na to, jaki rozmiar zrobisz, nadal możesz go używać coraz więcej. Dlaczego więc plikowi wymiany nie są przydzielane 2 dedykowane spacje 1 jako pamięć wirtualna, a druga jako przestrzeń hibernacji, która byłaby sumą lub drugą 2. Po prostu nie układa się dla mnie i nikt nigdy nie odpowiedział na to pytanie.
NZ Dev
0

Rzeczywiście, jest narzut, ale jest bardzo mały; dla każdej „strony” na dysku jest licznik referencyjny i istnieje kilka struktur powiązanych z każdym obszarem wymiany; jest to w pamięci jądra, więc nie może być stronicowane. Ma od 2 do 16 MB co 4 GB, w zależności od architektury. Reszta jest dość dynamiczna, a zatem zależy od użytkowania.

Możesz więc mieć dużo, ale pamiętaj, że sama przestrzeń adresowa stronicowania narzuca trochę pamięci RAM, a ponadto śledzenie stron zamienia się, więc nie skaluje się zbyt daleko; nawet jeśli nakłada się na to dość ogólne obciążenie, systemy plików są znacznie bardziej wydajne niż obszary wymiany, jeśli chodzi o obsługę większych obszarów, ponieważ vfs mogą przenosić informacje strukturalne na dysk (zwykle przynajmniej tabel stron nie można zamienić z powodu ograniczeń sprzętowych i vmm najprawdopodobniej używa pamięci nie wymiennej do wszystkich swoich operacji księgowych).

Nie mogę wymyślić żadnego innego minusu, ponieważ OTOH posiadający zbyt małą liczbę wymian może powodować fragmentację przy zamianie stron, co oznacza więcej wyszukiwania. Jeśli masz dużo, po pewnym momencie nie będzie też żadnych ulepszeń.

Zamiana jest na ogół ostatnim zasobem (poza hibernacją), więc prawdopodobnie nie odniesiesz korzyści z posiadania większej ilości przestrzeni wymiany niż RAM, szczególnie jeśli masz ponad 4 GB pamięci RAM, a czasami nawet tak duża, jak pamięć RAM jest zbyt duża (pomyśl 64 GB) .

Ismael Luceno
źródło
Niestety, twoje ostatnie zdanie / zdanie jest mylące, w przeciwnym razie dobry dodatek do powyższego.
NZ Dev
@NZDev czy jest teraz lepiej?
Ismael Luceno