Po obejrzeniu komentarz przez Anonymous na pytanie, jaki jest katalog / tmp oczyścić? , Odkryłem, że to byłby świetny pomysł na wdrożenie w moim systemie, ponieważ mam 16 GB pamięci RAM i nigdy z niej nie korzystałem.
Moje pliki tymczasowe nigdy nie są zapisywane na dysku. Są zapisywane na dysku RAM. Włożyłem
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
/ etc / fstab.
Moje pytanie brzmi:
Czy mogę ustawić maksymalną wartość dla użycia pamięci RAM /tmp
? A w takim przypadku, co by się stało, gdyby maksymalna ilość została przekroczona, czy zapisałby na dysk twardy?
Przeczytałem rozwiązanie, które stwierdza:
mkdir -p /tmp/ram sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/
Ale w moim rozumieniu nie będzie to trwałe rozwiązanie. Jeśli potrzebuję, aby był stały, należy go dodać do /etc/fstab
pliku konfiguracyjnego.
Jeśli jest to prawidłowe rozwiązanie, jak mogę przekształcić to polecenie montowania w linię /etc/fstab
?
źródło
Odpowiedzi:
Masz absolutną rację. Odpowiedni wpis fstab wyglądałby tak:
Proszę zanotować:
Po
tmpfs
zapełnieniu będzie się zachowywał jak każdy fizyczny dysk twardy, powodując błąd „niewystarczającej ilości miejsca”. Chociaż ponowne uruchomienie (a tym samym opróżnienie pamięci podręcznej) naprawi to, możesz wpaść w kłopoty, gdy pojedyncza operacja zużywa więcej miejsca na początku niż na nimtmpfs
. W takim przypadku komputer zacznie się zamieniać z pamięci RAM na dysk, co spowoduje zatrzymanie się systemu, pod warunkiem, że oczywiście masz partycję wymiany.Biorąc to pod uwagę, rozmiar 512 MB może być obecnie o wiele za mały, ponieważ w nowoczesnych maszynach istnieje znacznie więcej pamięci RAM i stało się znacznie tańsze. Ponieważ masz już 16 GB pamięci RAM, użycie domyślnej wartości połowy pamięci RAM na
tmpfs
więcej niż wystarcza dla prawie wszystkich scenariuszy. Aby użyć wartości domyślnej, po prostu pomińsize=512M
wpis w swoim/etc/fstab
pliku.Kolejna uwaga:
Równie łatwo możesz zamontować inne foldery systemowe na ramdysku, takie jak
/var/cache
/var/games
/var/log/apt
(używaj tylkodefaults,noatime
bezmode=
lubnosuid
)Ale uwaga: obowiązują te same zasady, co powyżej, brak miejsca może spowodować poważne problemy. Np. Wyobraź sobie, że zabraknie miejsca dla / var / log / apt spowoduje, że nie będziesz mógł zainstalować żadnych programów! Ponadto ładowanie
/var/log
folderów do ramdysku spowoduje usunięcie wszystkich plików dziennika po ponownym uruchomieniu, więc nie będzie można debugować systemu, jeśli wydarzy się coś nieoczekiwanego. Korzystaj z tych ustawień na własne ryzyko!Nota redakcyjna: usunąłem
/run
ztmpfs
opcją montowania ponieważ tym folderze i jego podfolderach są już zamontowane wtmpfs
domyślnie.źródło
W systemach używających
systemd
masz opcję użycia pliku jednostkowego systemd zamiast fstab, aby osiągnąć cel użyciatmpfs
montowaniatmp
. W moim systemie Ubuntu 16.04 uruchomiłem:Plik
/usr/share/systemd/tmp.mount
wygląda następująco:Używając metody fstab FuzzyQ, systemd dynamicznie przekształca wpisy fstab na jednostki montowania. Nie sądzę, aby którekolwiek podejście było lepsze.
Aby ustawić maksymalny limit pamięci RAM zgodnie z żądaniem, należałoby dodać
size=512M
doOptions
wiersza, oddzielając go przecinkiem.źródło
systemctl enable tmp.mount
gdy cp inaczej systemctl nie powiedzie się z komunikatem „Failed to start tmp.mount: Unit tmp.mount not found.
”systemctl edit tmp.mount
neutralnej dystrybucji. Spowoduje to umieszczenie twoich zmian w pliku override.conf, dzięki czemu nie zmienisz domyślnego pliku tmp.mount i możesz łatwo usunąć plik override.conf, aby powrócić do domyślnej konfiguracji.ln -s
raczej niżcp
w pierwszym kroku.