sync echo 3 > /proc/sys/vm/drop_caches
Поскольку детали смотрят здесь.
Другая проблема - то, почему Вы хотели бы сделать это?
Я думаю, что изучил это однажды и пришел к заключению, что, прежде чем система виртуальной памяти ядра инициализируется, она использует примитивное средство выделения памяти начальной загрузки для выделения вещей как структуры, требуемые управлять виртуальной памятью, и страницы, использованные средством выделения начальной загрузки, не составляются правильно.
Использовать free -b
.
$ free -b
total used free shared buffers cached
Mem: 2147483648 237707264 1909776384 0 0 0
-/+ buffers/cache: 237707264 1909776384
Swap: 0 0 0
$ echo $(( 237707264 + 1909776384 ))
2147483648
/proc/meminfo[1129609] расскажет вам, как работает [1129610]free[1129611], но [1129612]/proc/kcore[1129613] может рассказать вам, что использует ядро. С той же страницы:
/proc/kcore
/proc/meminfo
Ядро резервирует некоторый объем памяти (пропорциональный его общему размеру) при запуске для таблиц памяти (для преобразования виртуальных адресов в физические). Эта память, предоставленная таблицам памяти, не может использоваться чем-либо еще и вычитается из сообщаемого общего объема памяти.
The bigger physical RAM size is, the smaller is the ratio of the memory which cannot be used to the total physical RAM size:
On 12Gb desktop this ratio is around 4.5%
On 32Gb server this ratio is around 2%
On 512Gb server this ratio is around 1.56%
You can read about this in more details in the Where Did My Memory Go article on http://linux-mm.org/ site.