Все узнать об оперативной памяти и сколько на что выделяется, сколько свободно этой памяти очень просто.
Необходимо просто распечатать файл /proc/meminfo.
$ cat /proc/meminfo
MemTotal: 12186524 kB
MemFree: 440728 kB
Buffers: 222724 kB
Cached: 3929420 kB
SwapCached: 191068 kB
Active: 8139012 kB
Inactive: 2989388 kB
Active(anon): 6132960 kB
Inactive(anon): 983880 kB
Active(file): 2006052 kB
Inactive(file): 2005508 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 8388600 kB
SwapFree: 5877900 kB
Dirty: 5148 kB
Writeback: 0 kB
AnonPages: 6876116 kB
Mapped: 52836 kB
Shmem: 140952 kB
Slab: 421636 kB
SReclaimable: 305496 kB
SUnreclaim: 116140 kB
KernelStack: 2672 kB
PageTables: 34236 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 14481860 kB
Committed_AS: 7820212 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 305252 kB
VmallocChunk: 34359424076 kB
HardwareCorrupted: 0 kB
AnonHugePages: 4759552 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 7744 kB
DirectMap2M: 12566528 kB
Теперь поподробней о каждом. Статистика вадается как о высокого так и низкого уровня. В моем случае все параметры выводятся отдельно. Рассмотрим параметры памяти высокого уровня.
MemTotal: 12186524 kB
MemFree: 440728 kB
Buffers: 222724 kB
Cached: 3929420 kB
SwapCached: 191068 kB
MemTotal - Общая полезная память (физическая память за минусом нескольких зарезервированных битов и код ядра).
MemFree - Свободно памяти LowFree + HighFree
Buffers - буфер памяти в кэше.
Cached - память в кэш страниц (diskcache) минус SwapCache
SwapCached - память, которая когда-то была выгружена в файл подкачки
VM разбивается на кэш «активной» и «неактивные» памяти.
Active: 8139012 kB
Inactive: 2989388 kB
Active(anon): 6132960 kB
Inactive(anon): 983880 kB
Active(file): 2006052 kB
Active — Объем памяти, занятый в ОЗУ наиболее часто используемыми страницами памяти. Иначе говоря, это страницы памяти активно используются процессами и сможет освободиться только в случае крайней необходимости.
Inactive — Объем памяти, занятый в ОЗУ не используемыми в настоящий момент страницами. Эти страницы считаются наиболее подходящими для выгрузки в swap и освобождения в случае необходимости.
SwapTotal: 8388600 kB
SwapFree: 5877900 kB
SwapFree, SwapTotal - это общий объем области подкачки (как в разделе подкачки, так и в swap-файлах, если они используются). Как и в случае с ОЗУ, ядро Linux старается использовать область подкачки максимально эффективно. Иногда факт использования части области подкачки еще не означает того, что память является «узким местом» производительности системы. Один из способов влиять на агрессивность использования swap — это парметр vm.swappiness. Чем больше процент swappiness, тем активнее будет выгрузка в swap. По умолчанию в RHEL5 это число 60%. Предпочтительно использовать более агрессивную политику выгрузки в область подкачки, когда вы, например, на рабочей станции большую часть времени работаете с одним большим пакетом ПО и редко переключаетесь на другие задачи. Пример из области серверов — машина с ограниченным ОЗУ, выполняющая какие-то пакетные задания (процессы, находящиеся долгое время в состоянии S). На серверах с большим объемом ОЗУ увеличения swappiness может свести все выгоды использования swap «на нет» из-за активного использования дисковой подсистемы и процессорного времени для поиска и сброса на диск неактивных страниц памяти.