[Linux.wiki] Использование RAM в Linux.

Озадачился высоким использованием RAM на моём сервере. Прочитал пару статей и посмотрел полезное видео (ссылка в конце).
Получается всё как и должно быть – Linux держит в кэше много данных для ускорения работы сервера.
Подготовил перевод на основе данных моего сервера.

При использовании обычной команды free может показаться, что есть много памяти которую можно просто удалить.
alexander@server ~ # free -h
total used free shared buffers cached
Mem: 490M 182M 307M 20M 2.6M 41M
-/+ buffers/cache: 138M 351M
Swap: 0B 0B 0B

-/+ buffers/cache: – Кажется 138М используется и 351М доступно (можно очистить кэш и будет много свободной памяти), но это не так!

Если это было бы так, то после очистки кэша free памяти стало бы больше, но этого не происходит – память используется сразу снова.
Команда очищает всю память которая не используется в данный момент (можете проверить – я проверил, особо не помогает, памяти особо больше не становится):
echo 3 > /proc/sys/vm/drop_caches

Для анализа использования RAM лучше использовать:
cat /proc/meminfo
(выведена наиболее полезная информация):

alexander@server:~$ cat /proc/meminfo
MemTotal: 501848 kB
MemFree: 305748 kB
Buffers: 7328 kB
Cached: 55516 kB
Active: 126196 kB
Inactive: 34992 kB
Active(anon): 109568 kB
Inactive(anon): 9512 kB
Active(file): 16628 kB
Inactive(file): 25480 kB
—-
Active: – данный объём памяти используется Linux в данный момент. Этот объём памяти нужен системе однозначно.
Inactive: – объём памяти выделен/запользован в памяти, но особо не нужн. С ним можно что-то сделать(в swap или выкинуть из RAM – см.ниже).
Active(anon): – (anon)- тип памяти, запрошенный(используемый) процессами в данный момент. Данный объём памяти однозначно нужен системе для работы.
Inactive(anon): – запрошенный процессами, но не используемый в данный момент. Этим данным не обязательно находится в памяти – кандидаты на то чтобы быть перенесены в Swap.
Active(file): – (file)- тип памяти, запрошенный(используемый) by buffers and caches. Cache позволяет системе работать быстрее – данные которые часто используются храняться в RAM и не надо обращаться к диску. Нам нужен этот объём.
Inactive(file): – Cache который сейчас не используется и может быть удалён в любой момент. Система должна освобождать эту память сама в случае необходимости.
—————————-
Active+Inactive = (Active(anon)+Active(file)) + (Inactive(anon)+Inactive(file))
—————————-

Материалы брал отсюда:
Optimizing Linux memory usage [linux.conf.au 2014]
И снова о памяти в Linux – /proc/meminfo
What Does Cached Memory Mean when Viewing htop?