Skip to contentSkip to conversation

which fields in /proc/meminfo are orthogonal?

DISCUSSION Chris Friesen 4 participants 6 messages Jan 26, 2010 – Aug 3, 2010 Memory management

lore
Share & tools
lore
#0 lore raw

Hi,

We have a system (2.6.27 based) which seems to be increasing its memory consumption by several MB an hour. Summing up Pss for all maps in all processes doesn't seem to explain it, so I'm looking at the kernel.

I've backported the kmemleak functionality. It's self-test module shows leaks so I know it's working, but it doesn't report any leaks that would correspond to the memory increase.

I'm currently trying to figure out which of the entries in /proc/meminfo are actually orthogonal to each other. Ideally I'd like to be able to add up the suitable entries and have it work out to the total memory on the system, so that I can then narrow down exactly where the memory is going. Is this feasable?

I'll keep reading the code but if anyone happens to know this already I'd appreciate some assistance.

Thanks,

Chris

#1 lore raw
Quoted 5 lines · Chris Friesen

I'm currently trying to figure out which of the entries in /proc/meminfo are actually orthogonal to each other. Ideally I'd like to be able to add up the suitable entries and have it work out to the total memory on the system, so that I can then narrow down exactly where the memory is going. Is this feasable?

I've tried adding up MemFree+Buffers+Cached+AnonPages+Mapped+Slab+PageTables+VmallocUsed

(hugepages are disabled and there is no swap)

Shortly after boot this gets me within about 3MB of MemTotal. However, after 1070 minutes there is a 64MB difference between MemTotal and the above sum.

Here's /proc/meminfo after 1070 minutes:

MemTotal:      4042848 kB
MemFree:        406112 kB
Buffers:         12072 kB
Cached:        3068368 kB
SwapCached:          0 kB
Active:         671200 kB
Inactive:      2711952 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:              44 kB
Writeback:           0 kB
AnonPages:      235864 kB
Mapped:          30752 kB
Slab:           200156 kB
SReclaimable:   142828 kB
SUnreclaim:      57328 kB
PageTables:       4320 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:   2021424 kB
Committed_AS:  2593116 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     21496 kB
VmallocChunk: 34359716779 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     2048 kB
DirectMap4k:      3008 kB
DirectMap2M:   4190208 kB

Any ideas how to track down the missing memory?

Chris

#2 lore raw
Quoted 8 lines · Chris Friesen

I've tried adding up MemFree+Buffers+Cached+AnonPages+Mapped+Slab+PageTables+VmallocUsed

(hugepages are disabled and there is no swap)

Shortly after boot this gets me within about 3MB of MemTotal. However, after 1070 minutes there is a 64MB difference between MemTotal and the above sum.

Oddly enough, over the same period it appears that

MemFree + Active + Inactive + Slab + PageTables

is basically (+/- half a meg) constant and equal to "MemTotal - 48.5MB".

It would seem that active/inactive track memory that isn't visible in Buffers+Cached+AnonPages+Mapped. Anyone have any suggestions what it might be?

Thanks,

Chris

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#3 lore raw
In reply to Chris Friesen
Quoted 10 lines · Chris Friesen
Quoted 5 lines · Chris Friesen

I'm currently trying to figure out which of the entries in /proc/meminfo are actually orthogonal to each other. Ideally I'd like to be able to add up the suitable entries and have it work out to the total memory on the system, so that I can then narrow down exactly where the memory is going. Is this feasable?

I've tried adding up MemFree+Buffers+Cached+AnonPages+Mapped+Slab+PageTables+VmallocUsed

VmallocUsed referws to Vmalloc address space consumption. However, Vmalloc address space is not used exclusively to map system RAM into virtual address space. It is also used to map PCI MMIO windows to the register sets or memory chips on PCI cards into the vritual address space.

Regards,
Andy

Quoted 41 lines

(hugepages are disabled and there is no swap)

Shortly after boot this gets me within about 3MB of MemTotal. However, after 1070 minutes there is a 64MB difference between MemTotal and the above sum.

Here's /proc/meminfo after 1070 minutes:

MemTotal:      4042848 kB
MemFree:        406112 kB
Buffers:         12072 kB
Cached:        3068368 kB
SwapCached:          0 kB
Active:         671200 kB
Inactive:      2711952 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:              44 kB
Writeback:           0 kB
AnonPages:      235864 kB
Mapped:          30752 kB
Slab:           200156 kB
SReclaimable:   142828 kB
SUnreclaim:      57328 kB
PageTables:       4320 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:   2021424 kB
Committed_AS:  2593116 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     21496 kB
VmallocChunk: 34359716779 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     2048 kB
DirectMap4k:      3008 kB
DirectMap2M:   4190208 kB
Quoted 9 lines

Any ideas how to track down the missing memory?

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#4 lore raw

Hi Andy,

I am seeing similar kind of issue, where SUnreclaim increases. How did
you resolve your issue.

Thanks
Jayasri

Quoted 83 lines · Andy Walls-2 wrote:
Quoted 11 lines · Chris Friesen
Quoted 1 line · Chris Friesen

I'm currently trying to figure out which of the entries in

/proc/meminfo

Quoted 4 lines

are actually orthogonal to each other. Ideally I'd like to be able to add up the suitable entries and have it work out to the total memory on the system, so that I can then narrow down exactly where the memory is going. Is this feasable?

I've tried adding up MemFree+Buffers+Cached+AnonPages+Mapped+Slab+PageTables+VmallocUsed

VmallocUsed referws to Vmalloc address space consumption. However, Vmalloc address space is not used exclusively to map system RAM into virtual address space. It is also used to map PCI MMIO windows to the register sets or memory chips on PCI cards into the vritual address space.

Regards,
Andy

Quoted 43 lines

(hugepages are disabled and there is no swap)

Shortly after boot this gets me within about 3MB of MemTotal. However, after 1070 minutes there is a 64MB difference between MemTotal and the above sum.

Here's /proc/meminfo after 1070 minutes:

MemTotal:      4042848 kB
MemFree:        406112 kB
Buffers:         12072 kB
Cached:        3068368 kB
SwapCached:          0 kB
Active:         671200 kB
Inactive:      2711952 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:              44 kB
Writeback:           0 kB
AnonPages:      235864 kB
Mapped:          30752 kB
Slab:           200156 kB
SReclaimable:   142828 kB
SUnreclaim:      57328 kB
PageTables:       4320 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:   2021424 kB
Committed_AS:  2593116 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     21496 kB
VmallocChunk: 34359716779 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     2048 kB
DirectMap4k:      3008 kB
DirectMap2M:   4190208 kB

Any ideas how to track down the missing memory?

Quoted 8 lines

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Signature · 2 lines
View this message in context: http://old.nabble.com/which-fields-in--proc-meminfo-are-orthogonal--tp27328047p29337843.html
Sent from the linux-kernel mailing list archive at Nabble.com.
#5 lore raw
In reply to Chris Friesen
Quoted 8 lines · Chris Friesen

I've tried adding up MemFree+Buffers+Cached+AnonPages+Mapped+Slab+PageTables+VmallocUsed

(hugepages are disabled and there is no swap)

Shortly after boot this gets me within about 3MB of MemTotal. However, after 1070 minutes there is a 64MB difference between MemTotal and the above sum.

I believe that pages allocated directly with get_free_pages won't show up in your sum. So, just look for someone doing a lot of that :-)

Jeff

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>