Jak zgadnąć rozmiar partycji wymiany podczas używania tmpfs?


2

Mam dysk SSD, więc przestrzeń jest rzadkim zasobem. Chciałbym jak najmniej wykorzystać do wymiany. W rzeczywistości spędziłem ostatni rok bez partycji wymiany (komputer ma 6 GB pamięci RAM).

Planuję czystą ponowną instalację i chcę spróbować nowych rzeczy. Wśród nich chcę zmniejszyć obciążenie zapisu na dysku SSD, umieszczając katalogi systemowe z ciężkim zapisem na tmpfs. W szczególności chcę umieścić /tmp, /var/tamp i /var/tmp/cache w pamięci RAM. Oczywiście zwiększy to zużycie mojej pamięci RAM, a w końcu może być konieczna wymiana.

Nie rejestrowałem dotychczasowych rozmiarów katalogów i użycia pamięci RAM i nie chcę instalować narzędzi rejestrujących i czekać z ponowną instalacją, dopóki nie zgromadzę wystarczających danych. Jakie są moje najlepsze możliwości odgadnięcia odpowiedniego rozmiaru partycji wymiany? Jak rozsądne będzie takie odgadnięcie? Czy po prostu opuściłem strzelanie w ciemności lub opierając się na generatywnych wskazówkach w rodzaju „1,5 x rozmiar pamięci RAM”?

Wykonuję całkowite wyłączenie każdej nocy, więc mam nadzieję, że katalogi tymczasowe nie będą miały zbyt dużego rozmiaru.


Mój system operacyjny (arch linux) jest na dysku SSD i mam 6 GB pamięci RAM. Mam partycję wymiany o pojemności 2 GB, która jest rzadko dotykana. Tylko po to, aby dać ci punkt danych na 2017 rok.
Emanuel Landeholm

Odpowiedzi:


4

Masz trzy problemy z zamianą przestrzeni.

Po pierwsze, przy niewystarczającej przestrzeni wymiany niektóre obciążenia nie są po prostu możliwe do wykonania. Jeśli program potrzebuje więcej pamięci niż dostępna fizyczna pamięć RAM, po prostu nie może działać bez wymiany.

Po drugie, przy bardzo małej przestrzeni wymiany komputer może nie być w stanie eksmitować rzeczy, do których nigdy nie ma dostępu z fizycznej pamięci RAM. Często część pamięci nigdy nie będzie dostępna, ale system operacyjny nie może tego udowodnić. Więc nie może po prostu zwolnić pamięci. Bez wystarczającej wymiany informacje pozostaną w pamięci RAM na zawsze, nigdy nie będą dostępne. Wiele procesów zabrudza pamięć na starcie, której nigdy nie dotykają.

Wreszcie, przy bardzo niskiej przestrzeni wymiany, decyzja o przepełnieniu maszyny wirtualnej może mieć drastyczne konsekwencje. Jeśli nie pozwolisz systemowi na przepełnienie VM, skończysz odmawiając operacji, które w rzeczywistości nie zajmują dużo pamięci. (Wyobraź sobie, że duży proces dzwoni fork. Może zaraz zadzwonić exec, ale jeśli nie zezwoli się na przekroczenie limitu, system operacyjny musi odmówić fork jeśli nie ma wystarczającej ilości pamięci RAM + zamiana na nowy proces, aby zabrudzić każdą zapisywalną zmapowaną stronę.) Jeśli pozwolisz systemowi na przepełnienie, a nie masz wystarczającej ilości pamięci RAM + zamiana na nietypowe obciążenie, możesz znaleźć procesy bezceremonialnie zakończone.

Osobiście, zakładając typowe użycie, przydzieliłbym 2 GB na wymianę i upewniłem się rozsądne przekroczenie limitu jest dozwolone .


2

Jeśli nie wykonujesz żadnych zadań intensywnie wykorzystujących pamięć, komputer z pamięcią 6G RAM może obejść się bez wymiany (ostrzeżenie: jestem szalony).

Montowanie / tmp (jego / var rodzeństwo) jako tmpfs jest bardzo dobrą praktyką. Dla mojego netbooka z 1G RAM, bez wymiany, trzymałem 100M / tmp tmpfs i nigdy nie dawałem problemu (chyba że chcesz szarpać rzeczy stamtąd jak rzeczy buforowane, których ludzie normalnie nie chcą).

Jeśli coś się nie uda, wszystko co musisz edytować to / etc / fstab.

Paranoja jest dobra, ale twoje szanse na utratę danych mniej, ponieważ tylko katalogi tmp / cache są w pamięci, i tak rzeczywiste dane są zapisywane na dysku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.