Re: [External] Re: [PATCH] mm: proc: add Sock to /proc/meminfo

From: Vlastimil Babka
Date: Fri Oct 16 2020 - 11:38:37 EST


On 10/13/20 10:09 AM, Mike Rapoport wrote:
We are not complaining about TCP using too much memory, but how do
we know that TCP uses a lot of memory. When I firstly face this problem,
I do not know who uses the 25GB memory and it is not shown in the /proc/meminfo.
If we can know the amount memory of the socket buffer via /proc/meminfo, we
may not need to spend a lot of time troubleshooting this problem. Not everyone
knows that a lot of memory may be used here. But I believe many people
should know /proc/meminfo to confirm memory users.
If I undestand correctly, the problem you are trying to solve is to
simplify troubleshooting of memory usage for people who may not be aware
that networking stack can be a large memory consumer.

For that a paragraph in 'man 5 proc' maybe a good start:

Yeah. Another major consumer that I've seen at some point was xfs buffers. And there might be others, and adding everything to /proc/meminfo is not feasible. I have once proposed adding a counter called "Unaccounted:" which would at least tell the user easily if a significant portion is occupied by memory not explained by the other meminfo counters, and look for trends (increase = potential memory leak?). For specific prominent consumers not covered by meminfo but that have some kind of internal counters, we could document where to look, such as /proc/net/sockstat or maybe create some /proc/ or /sys directory with file per consumer so that it's still easy to check, but without the overhead of global counters and bloated /proc/meminfo?

From ddbcf38576d1a2b0e36fe25a27350d566759b664 Mon Sep 17 00:00:00 2001
From: Mike Rapoport<rppt@xxxxxxxxxxxxx>
Date: Tue, 13 Oct 2020 11:07:35 +0300
Subject: [PATCH] proc.5: meminfo: add not anout network stack memory
consumption

Signed-off-by: Mike Rapoport<rppt@xxxxxxxxxxxxx>
---
man5/proc.5 | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/man5/proc.5 b/man5/proc.5
index ed309380b..8414676f1 100644
--- a/man5/proc.5
+++ b/man5/proc.5
@@ -3478,6 +3478,14 @@ Except as noted below,
all of the fields have been present since at least Linux 2.6.0.
Some fields are displayed only if the kernel was configured
with various options; those dependencies are noted in the list.
+.IP
+Note that significant part of memory allocated by the network stack
+is not accounted in the file.
+The memory consumption of the network stack can be queried
+using
+.IR /proc/net/sockstat
+or
+.BR ss (8)
.RS
.TP
.IR MemTotal " %lu"
-- 2.25.4