Нет, всё-таки не помогло.
Немного поигрался с swappiness - проблема не в нём.
Дело в том, что у меня запущено достаточно много Java-приложений. Хоть я и ограничил их (-Xms128m -Xmx256m), это не помогло, т.к. Java кушает реально то, что ей сказали, но зачем-то захватывает очень много виртуальной памяти, порядка 600-700 мегов сходу. Зачем ей они если она всё равно не будет их использовать - непонятно. Как заставить её быть поскромнее с виртуальной памятью я не нашёл.
Итак получается, что у меня 2 Гб оперативки и 3 Гб своп. Через пару часов работы на ноуте у меня в системе реально используется 1 Гб памяти и при этом захвачено виртуальной (неиспользуемой памяти) в сумме разными приложениями 2.5 Гб, итого 3.5 Гб.
В таком случае получается, что системе просто некуда деваться, приходится свопиться, хотя реально физическая память используется всего наполовину.
Если поставить swappiness=0, то система до последнего тянет со свопом и всё просто летает, но как только настаёт момент Х (в этот момент занято 500 Мб реально и 1.5 Гб виртуально), вся система зверски подвисает минут на 5 - перераспределяет память по свопу.
Какая-то злая несправедливость - памяти физически в 2 раза больше чем реально нужно, но при этом возникают тормоза из-за того, что система свопится

Кто нибудь знает как можно ограничить приложения в использовании виртуальной памяти на уровне системы?
PS: Кстати, а процесс compiz.real вообще захватил виртуалки 1077m и при этом реальной использует 25m. Вообще ерунда какая-то.