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.
Thanks Sreenivas