Możesz zrobić to, co sugerował Nik i użyć swapoff . Istnieje jednak inny, bardziej elegancki sposób na podkręcenie „zamiany” lub na to, jak agresywnie jądro zamienia programy na dysk w systemach z jądrem 2.6.
Na listach dyskusyjnych jądra Linuksa toczyły się gorące debaty na temat polityki, którą jądro powinno stosować w odniesieniu do zachowania wymiany . Rezultatem jest to, że mamy teraz łatkę w jądrach 2.6, która pozwala nam w znacznym stopniu dostosować to zachowanie.
Zauważ, że potrzebujesz do tego uprawnień roota, tak jak chcesz uruchamiać komendy swapoff / swapon.
Bieżącą wartość „swapiness” można sprawdzić w pliku / proc / sys / vm / swappiness lub uruchamiając następujące polecenie sysctl :
sudo sysctl vm.swappiness
Wartości „swapiness” mogą mieścić się w zakresie od 0 (bez zamiany) do 100 (w miarę możliwości zamień na dysk ). Ubuntu jest dostarczane z domyślną zamianą na 60.
Aby to zmienić dla sesji, ponownie wywołaj sysctl i przekaż mu wartość swapiness do użycia:
sudo sysctl vm.swappiness=30
Poza darmo , można oczywiście monitorowanie skutków robi to poprzez doskonałej htop lub iotop użyteczności publicznej.
Jeśli podoba Ci się to, co widzisz, i chcesz zachować tę wartość podczas ponownego uruchamiania, po prostu umieść „vm.swappiness = 30” w pliku /etc/sysctl.conf .
$ sudo sysctl vm.swappiness
vm.swappiness = 30
$ sudo sysctl vm.swappiness=40
vm.swappiness = 40
$ sudo sysctl vm.swappiness
vm.swappiness = 40
$ sudo tail /etc/sysctl.conf
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
# The contents of /proc/<pid>/maps and smaps files are only visible to
# readers that are allowed to ptrace() the process
# kernel.maps_protect = 1
vm.swappiness=30
Możesz grać z różnymi wartościami, dopóki nie znajdziesz takiej, która pociąga za sobą akceptowalny poziom wymiany na twoim komputerze.
Pamiętaj, że rzeczy w zamianie zostały tam umieszczone w bardziej zajętym czasie niż teraz.
Może się okazać, że dane znajdują się również w pamięci RAM - zostały ponownie załadowane do użycia, ale nie zostały usunięte z wymiany. Jądro robi to, aby zaoszczędzić czas w następnym zajętym okresie - jeśli dane są już tam skopiowane, może po prostu zwolnić pamięć RAM, której używa, zamiast najpierw zapisywać na dysku. Więc jeśli nie wiesz, że maszyna nie będzie musiała ponownie zamieniać się w najbliższej przyszłości, wymuszenie zwolnienia przestrzeni wymiany może nic nie osiągnąć, oprócz spowolnienia rzeczy następnym razem, gdy konieczna będzie zamiana.
Jest to zarządzane na zasadzie usuwania po zapisaniu, więc jeśli kopia w pamięci RAM zostanie zaktualizowana, bloki w swap zostaną zwolnione.
Jeśli przestrzeń wymiany jest potrzebna na coś innego, czego nie będzie w tej chwili, ponieważ masz dużo wolnego miejsca, oczywiście zostanie zwolniona do tego celu.
Nie możesz zobaczyć, ile danych znajduje się w tym stanie (zarówno na stronach opartych na dysku w obszarach wymiany, jak i w pamięci RAM) w danych wyjściowych
free
. Możesz to jednak zobaczyć za pomocą/proc
specjalnego systemu plików. Spójrz na wyjściucat /proc/meminfo
doSwapCached
hrabiego.Kolejne dwa powody, dla których warto stosować swap, gdy najwyraźniej jest wolna pamięć
free
dane wyjściowe, które prawdopodobnie nie są tutaj tak jak Ty mieć naprawdę nieprzydzieloną pamięć RAM oraz pamięć podręczną / bufory IO.źródło
Pamiętaj, że
free
to tylko migawka użycia pamięci. Rezultat, który widzisz, może sugerować, że w pewnym momencie w systemie brakowało pamięci RAM, więc zamieniono materiał rezydujący w pamięci RAM. Od tego czasu pamięć RAM stała się wolna, ale materiał na swapie nie był wymagany, więc nadal jest przechowywany na swapie, a nie tylko zaśmiecający pamięć RAM. W takim przypadku wyłączenie wymiany byłoby złym pomysłem. Czy są jakieś procesy, które mogą wymagać tak dużej ilości pamięci RAM od ostatniego przeładowania?Ponadto możesz sprawdzić, czy nie masz ograniczenia dotyczącego maksymalnego rozmiaru rezydenta ustawionego za pomocą ulimit (zwykle w / etc / profile, ale może różni się w zależności od dystrybucji i może być ustawiony dla poszczególnych procesów (np. W skrypcie uruchamiania) ).
Wreszcie w systemie Microsoft Windows pojawiają się doniesienia o konkretnych problemach z wymianą Firefoksa na dysk, np. Po zminimalizowaniu (np http://joeabiraad.com/mozilla-firefox/control-your-firefox-ram-usage/113 ). Nie słyszałem o tym w systemach GNU / Linux, ale być może warto je zbadać.
źródło