I am debugging an issue where we are running out of kernel low memory and I am trying to identify who is using the kernel low memory thats contributing to the problem.
Following is the meminfo output:
MemTotal: 16622556 kB MemFree: 11429420 kB Buffers: 146268 kB Cached: 2898228 kB RAMCached: 1213120 kB Allowed: 4155639 Pages Free: 2857355 Pages Available: 3317413 Pages SwapCached: 0 kB Active: 3004716 kB Inactive: 1694188 kB HighTotal: 16045340 kB HighFree: 11419648 kB LowTotal: 577216 kB LowFree: 9772 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 8 kB Writeback: 0 kB Mapped: 1871960 kB Slab: 304260 kB CommitLimit: 8311276 kB Committed_AS: 5438236 kB PageTables: 20956 kB VmallocTotal: 311288 kB VmallocUsed: 253900 kB VmallocChunk: 48892 kB
I looked at the following fields in the output above:
LowTotal: 577216 kB LowFree: 9772 kB Slab: 304260 kB
If I add up the memory allocation in /proc/slabinfo, that matches with the slab content(304kb) mentioned above.
I looked at kernel source code and I see that lowfree is calculated as (totalfree-highfree) which matches in the table above.
I am wondering where the remaining 263mb(lowtotal-lowfree-slab, 577216-9772-304260=263184mb) of low memory is used. Looks like lowmem is used for purposes other than slab. Once I figure out who else is using lowmem other than slab, I can try to figure out where the memory is getting list.
Basically, my goal is trying to find who is using the 570mb of lowmem.
I looked at different mailgroups which explains meminfo and slabinfo details but I have not seen details of the lowmem usage details.