17 октября 2010 г.

Снижение уровня свопинга

Если вы заметили, что система (касается *nux-like ОС) использует swap (раздел подкачки) чаще ожидаемого, то не стоит расстраиваться раньше времени. Есть простой способ настроить частоту свопинга (сбрасывания страниц памяти в своп).


swappiness


Существует параметр ядра swapiness, который отвечает за агрессивность свопинга. Его значения от 0 до 100 - уровень свободной памяти (в процентах), при котором система начинает активно сбрасывать своп. 0 - использовать своп, только в критических ситуациях, 100 - использовать как можно чаще.
По-умолчанию это значение равно 60.

Посмотреть текущее значение параметра:
$ cat /proc/sys/vm/swappiness

Для изменения значения "на лету":
# echo 20 > /proc/sys/vm/swappiness
или
# sysctl -w vm.swappiness=20
Для того, что бы установить значение swapiness при загрузке, необходимо в файл /etc/sysctl.conf добавить/изменить следующее:
vm.swappiness=20

vfs_cache_pressure


Ещё один немаловажный параметр ядра - vfs_cache_pressure. Он отвечает за размер выделяемой памяти под  кеширование дисковых операций.
0 - не кешировать ничего.
100 - значение по-умолчанию.
>100 - агрессивно кешировать дисковые операции.

Вот здесь, предлагают путём экспериментов выяснить оптимальное для вас значение. Я выбрал 50.

Просмотр текущего значения:
$ cat /proc/sys/vm/vfs_cache_pressure

Изменить "на лету":
# echo 50 > /proc/sys/vm/vfs_cache_pressure
или
# sysctl -w vm.vfs_cache_pressure=50

Для установки значения vfs_cache_pressure при загрузке, добавить/изменить в файле /etc/sysctl.conf:
vm.vfs_cache_pressure=50

Полезные ссылки:

6 комментариев:

  1. Насчёт vfs_cache_pressure — всё наоборот.

    ОтветитьУдалить
  2. c vfs_cache_pressure ошибка!

    ОтветитьУдалить
  3. vfs_cache_pressure=0 никогда не отдавать ядру память с кешем, а не как в статье
    vfs_cache_pressure=1000 не использовать вообще дисковый кеш
    шо за лохи такие статьи пишут

    ОтветитьУдалить
  4. Афтар реально алень.
    vfs_cache_pressure совершенно наоборот работает, а не так как в статье

    ОтветитьУдалить