Ускорение системы посредством ограничения swap

Модератор: adventurer

Ответить

Автор темы
ant
Сообщения: 9
Зарегистрирован: 11 ноя 2011, 16:27

Ускорение системы посредством ограничения swap

#1

Сообщение ant » 16 май 2012, 15:35

Буквально на днях нашел интересную штуку, которая видимым образом ускоряет работу компьютера если есть нормальное колличество оперативной памяти.

Дело в том, как я понял, что система настроена таким образом, что если памяти свободной остается около 60 %, то ядро линукса начинает сбрасывать страницы памяти в своп. А как известно, своп намного медленнее, чем физическая оперативная память.

Чтобы информаци оставалась на платах памяти как можно дольше этот параметр можно поменять. Информацию нашел в интернете. Это будет не совсем ubuntu-way, но мне субъективно это понравилось. Окошки и рабочие столы переключаются быстро! Единожды открытое меню в следующий раз открывается почти сразу!

В общем, есть много способов указания этого параметра, но один мне понравился больше всего:

1) Открываем файл sysctl.conf:

Код: Выделить всё

sudo nano /etc/sysctl.conf
2) Записываем в конец файла 2 строчки:

Код: Выделить всё

vm.swappiness=1
vm.vfs_cache_pressure=1000
vm.swappiness - это параметр, который говорит системе о том, сколько должно быть оставшихся процентов свободной памяти чтобы компьютер начинал свопить. Некоторые сайты рекомендуют оставить 10 %, некоторые 1%. Я выставил 1% - полет нормальный. Чтобы проверить значение этого параметра в системе - нужно набрать:

Код: Выделить всё

cat /proc/sys/vm/swappiness
По умолчанию этот параметр равен 60.

vm.vfs_cache_pressure - не совсем точно знаю, что делает этот параметр. Полагаю, что он говорит системе, стараться ли ей оставить в памяти как можно больше кэша информации о диске (там иноды и прочее...) или же по первому же требованию освобождать память для программ... Как я понял, что при значении 0 - весь кэш остается в памяти и забивает ее информацией. Значение 100 - по умолчанию. При значении больше 100 - предпочтение отдается тому, чтобы перечитать информацию с диска. Рекомендуют ставить 1000 и больше для обычных винчестеров и около 50 для SSD дисков. Думаю, этот параметр можно и не менять... Я поставил себе 1000 - полет нормальный. Чтобы проверить его значение нужно набрать:

Код: Выделить всё

cat /proc/sys/vm/vfs_cache_pressure
Хочу попросить еще сообщество - может кто-то объяснит мне параметр vm.vfs_cache_pressure или хотя бы скажет, правильно ли я его понял.

Для того, чтобы изменения вступили в силу, нужно перезаргузить компьютер. Чтобы сразу вступили в силу - без перезагрузки - нужно набрать:

Код: Выделить всё

sudo sysctl -p
Это такие рекомендации я нашел для настройки системы именно для десктопа.

У меня система - Intel Celeron 1,7 GHz; 768 Mb RAM; swap - 512 Mb.

Код: Выделить всё

Mem:    758432k total,   702308k used,    56124k free,    41808k buffers
Swap:   504828k total,       12k used,   504816k free,   215172k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 2141 vova      20   0  713m 243m  28m R 83.1 32.8  55:11.76 firefox            
 1043 root      20   0 57064  41m 8284 S  8.5  5.6  65:08.13 Xorg               
 2191 vova      20   0  146m  23m  13m R  3.3  3.1   3:35.10 plugin-containe    
 2081 vova      20   0  204m  15m  10m R  2.0  2.1   0:22.87 lxterminal         
 2669 vova      20   0  285m  61m  14m S  0.7  8.4   2:03.10 skype              
 3247 vova      20   0  2828 1116  860 R  0.7  0.1   0:00.07 top                
 1509 vova      20   0 19492 7044 4124 S  0.3  0.9   0:17.35 openbox            
 1513 vova      20   0  280m  16m  11m S  0.3  2.2   1:52.03 lxpanel            
    1 root      20   0  3644 1736 1032 S  0.0  0.2   0:01.53 init