таки поспешил:
# swapoff -a && swapon -a
swapoff: /swapfile: swapoff failed: Невозможно выделить память
Конечно. Когда вам говорят, что в выбросе 'free -m' кеш можно не учитывать, это вам лапшу на уши вешают.
Сначала дропаете кеш и освобождаете память
# sync && echo 3 > /proc/sys/vm/drop_caches
затем перемещаете своп в физическую память, - она должна быть свободной и достаточной чтобы туда что-то переместить:
# swapoff -a && swapon -a
Я ведь не зря говорил, что SwapCached должно быть равно не менее половины MemFree (см. /proc/meminfo)
кстати, сама RAM постоянно забита кэшированной памятью, почти вся(( - это нормально?
Для Линукс это нормально. Линукс загаживает кешем всю доступную физическую память.
Но! Линукс не всегда умный:
Если своп у вас забит достаточно, физическая память заполнена программами заметно более чем на 5/6, кеш уперся в физическую память и заметно мал, Линукс не скажет Out of memory, а уйдёт в жесточайший своп. При перегруженной I/O процессор будет спать ожидая команд, а iowait будет жесточайше высоким. И вы увидите в Линукс такие тормоза, которых вы ещё никогда не видели. И тут лучше делать SysRq: вы не можете сказать какая операция выполняется на poweroff в 4 секунды и рискуете повредить систему.
Скажем так:
я бы стал перемещать своп в физическую память, если он 800 мегабайт и меньше:
# grep MemFree /proc/meminfo; free -k
MemFree: 1655952 kB
total used free shared buffers cached
Mem: 2517872 862044 1655828 0 2592 318536
-/+ buffers/cache: 540916 1976956
Swap: 0 0 0
Во-первых вам нужна свободная физическая память для перемещения свопа.
Во-вторых вам нужна свободная физическая память для программ после перемещения свопа, иначе смысл перемещения свопа теряется.