I've looked as some /proc/meminfo dumps I was provided with.

Dump were made at these time points:
1. after boot
2. successful core refresh from 2.38 to 2.37.4
3. successful core refresh from 2.37.4 to 2.38
4. failed refresh of other snap, failed when mounting the snap with: fork/exec 
/usr/bin/unsquashfs: cannot allocate memory

This is a list of values that varied between dumps (with the exception of 
LowTotal and CmaTotal):
                     (1)          (2)          (3)           (4)

MemFree:            4536 kB     11068 kB     23088 kB      52928 kB
MemAvailable:     163016 kB    163572 kB    163900 kB     155532 kB
Buffers:           29036 kB     30404 kB     15008 kB       1992 kB
Cached:           131148 kB    123692 kB    128144 kB     104288 kB
Active:           110720 kB    109724 kB    102740 kB     129208 kB
Inactive:          80724 kB     75892 kB     71808 kB      16128 kB
Active(anon):      33848 kB     34136 kB     33984 kB      41660 kB
Inactive(anon):     3160 kB      3160 kB      3160 kB       3160 kB
Active(file):      76872 kB     75588 kB     68756 kB      87548 kB
Inactive(file):    77564 kB     72732 kB     68648 kB      12968 kB
LowTotal:         243168 kB    243168 kB    243168 kB     243168 kB
LowFree:            4536 kB     11068 kB     23088 kB      52928 kB
AnonPages:         31304 kB     31568 kB     31416 kB      39092 kB
Mapped:            54896 kB     55140 kB     52052 kB      18556 kB
Slab:              23968 kB     23340 kB     22424 kB      21780 kB
SReclaimable:      11112 kB     11252 kB     10476 kB       9156 kB
SUnreclaim:        12856 kB     12088 kB     11948 kB      12624 kB
KernelStack:        1032 kB      1000 kB       992 kB       1008 kB
PageTables:         1064 kB      1044 kB      1044 kB       1060 kB
Committed_AS:     489144 kB    339420 kB    487848 kB     512848 kB
CmaTotal:          65536 kB     65536 kB     65536 kB      65536 kB
CmaFree:            2128 kB       208 kB     15752 kB      33700 kB


Interesting observations:
- MemAvailable stays high, consistent with top output recordings I was provided 
with previously
- CmaFree drops, that's the memory available to the contiguous memory 
allocation, IIRC that's for DMA transfers and such
- Slab unreclaimable (SUnreclaim) rises

Even though MemAvailable is high, launching new processes fails. CMA
free falling is intersting, I would expect weird things to happen when
it drops too low.

I think it would be worth collecting the output of:
- sudo cat /proc/slabinfo
- sudo slabtop -o

In the kernel source code, in tools/vm, there is a tool `slabinfo` which can 
process the data from /proc/slabinfo in a useful manner. If possible, I think 
it would be useful to rebuild the tool for given architecture and collect the 
output of:
- slabinfo
- slabinfo -T

Another angle that may be interesting to explore, just for the sake of making 
sure we check for the obvious things, is to collect this:
- cat /proc/sys/kernel/pid_max
- ps -efT | wc -l
- dmesg

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1822738

Title:
  memleak in 2.38+ ?

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1822738/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to