После переезда на KDE 5, возникла проблема со свободной памятью. Как оказалось, в 5-х кедах 4 гига оперативы достаточно быстро съедаются. Анализ показал, что половина оперативы занята программами, а вторая половина - дисковым кэшем. При частых операциях с файлами, особенно с большими, Linux кеширует эти самые файлы в оперативную память. В принципе, в этом нет ничего страшного, потому что как только, занятая закешированными файлами, оперативная память понадобится ядру, она будет частично освобождена для более приоритетной задачи. Но бывает так, что это освобождение памяти дает резкую нагрузку на swap, и комп начинает притормаживать. Т.к. у меня на компе постоянно крутится виртуалбокс, мне эти тормоза оказываются весьма критичны, и я озадачился, как этот дисковый кэш из оперативы сбрасывать.
Для начала посмотрим, сколько оперативы у нас свободно. В принципе, без разницы, чем это смотреть, механизмов достаточно: виджет на рабочем столе, команды free -m, top или еще что. Кому как удобно. В выводе команды можете посмотреть, чем и до какой степени у ваз загружена оператива. Если дискового кэша много, то, возможно, есть резон его сбросить.
Чтобы сбросить страничный кэш (page-cache) необходимо от имени рута выполнить команду:
echo 1 > /proc/sys/vm/drop_caches
Для сброса кэшей индексных узлов (inode) и записей каталогов (dentry) выполняем команду:
echo 2 > /proc/sys/vm/drop_caches
Если же есть необходимость сделать сброс и того, и другого, то команда выглядит так:
echo 3 > /proc/sys/vm/drop_caches
Это не разрушительные процедуры и удаляют из оперативной памяти то, что в данный момент уже не используется никакими процессами. То, что используется, но в данный момент не необходимо, сбрасывается на жесткий диск. Если перед этими процедурами выполнить команду sync, чтобы все самое лишнее сбросить на диск, то описаные выше команды смогуть освободить больше памяти.
Ну и чтобы постоянно не делать все это ручками, можно сваять нехитрый скрипт:
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
Скрипт, разумеется, должен запускаться с правами рута. Самые ленивые могут запихать этот скрипт в cron, и тогда система будет чиститься с указаным интервалом.
Наслаждайтесь!
http://kubuntu.ru/node/13082