Pokud máte starší počítač s menším množstvím paměti RAM, zřejmně bude velmi často přesouvat aktuálně nepoužívaný obsah paměti na pevný disk do swapu. Zde si ukážeme, jak lze toto nastavení upravit.
Co je swap?
Jedná se oddíl na pevném disku, který čeká na situaci, kdy bude docházet fyzická paměť RAM, v době kdy tato situace nastane se přesunou data neaktivních procesů na pevný disk do odkládacího prostoru na disku (do swapu), pokud se proces stane opět aktivním jsou data procesu nahrána z odkládacího uložiště zpět do RAM. Často se lze setkat s pojmy fyzická paměť (RAM) a virtuální paměť (oddíl na disku „rozšiřující“ paměť RAM). Problém nastává hlavně pokud máte malou kapacitu paměti RAM a pomalý pevný disk. Do jisté míry lze tento problém řešit upravením hodnoty swappines.
Swappines je hodnota, které lze přiřadit číslo 0-100, přičemž výchozí nastavenou hodnotou je 60. Hodnota určuje při kolika procentech volné paměti RAM začne počítač „swapovat“. Pokud jste nechali nastavenou výchozí hodnotu, tak počítač začne používat swap už pokud zaplníte 40% RAM. U desktopů se doporučuje nastavit hodnotu 10, což znamená, že počítač budu využívat RAM přibližně po zaplnění 90% RAM. V případě desktopů to má obvykle příznivý vliv na odezvu programů. Záleží však na tom, k čemu je počítač využíván a jaká je konkrétní konfigurace. Právě nastavenou hodnotu swappines získáte zadáním následujícího příkazu.
cat /proc/sys/vm/swappiness |
Přehled využití paměti
Pro snadnější nastavení swapování je dobré znát aktuální využívání paměti, zadejte příkaz:
free -m |
Ve výpise je důležitým sloupečkem used (použito)v mém případě je využito téměř 1600 megabytů paměti RAM z celkový 3783 megabytů. Swap je však kvůli nastavení swappines na hodnotu 10, když byla hodnota nastavena na výchozích 60 bylo běžně využíváno zhruba 500 megabytů swapu. U takto nastaveného počítače slouží swap spíše jako „pojistka“, že pokud dojde pamět, neskončí aplikace s pádem a hláškou „out of memory“.
Samotná uprava parametru
Pro úpravu parametru bez následků (po restartu se obnoví předchozí hodnota) lze využít příkaz:
sudo sysctl vm.swappiness=10 |
Tento příkaz nastavuví dočasnou hodinu swappines na 10. Místo hodnoty 10 lze však dosadit libovolné číslo od 0 do 100.
Pokud jste s nastavením spokojeni, stačí jej zapsat do konfiguračního souboru /etc/sysctl.conf to provede pomocí příkazu:
sudo nano /etc/sysctl.conf |
Na konec tohoto souboru doplňte následující řádky:
#Nastavení swappiness vm.swappiness=10 |
Číslo 10 je opět zvolená hodnota. Soubor uložte stisknutím kláves Ctrl+X a potvrďte y zapsnání změn souboru.