Thread (25 messages) 25 messages, 9 authors, 2020-10-19

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

From: Mike Rapoport <rppt@kernel.org>
Date: 2020-10-14 05:35:07
Also in: linux-fsdevel, linux-mm, lkml

On Tue, Oct 13, 2020 at 08:21:13AM -0700, Randy Dunlap wrote:
On 10/13/20 8:12 AM, Mike Rapoport wrote:
quoted
On Tue, Oct 13, 2020 at 07:43:59AM -0700, Randy Dunlap wrote:
quoted
On 10/13/20 1:09 AM, Mike Rapoport wrote:
quoted
On Mon, Oct 12, 2020 at 05:53:01PM +0800, Muchun Song wrote:
quoted
On Mon, Oct 12, 2020 at 5:24 PM Eric Dumazet [off-list ref] wrote:
quoted
On 10/12/20 10:39 AM, Muchun Song wrote:
quoted
On Mon, Oct 12, 2020 at 3:42 PM Eric Dumazet [off-list ref] 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:
quoted
From ddbcf38576d1a2b0e36fe25a27350d566759b664 Mon Sep 17 00:00:00 2001
From: Mike Rapoport <redacted>
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 <redacted>
---
 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"
Hi Mike,

Could you tell us what units those values are in?
or is that already explained somewhere else?
It is described a few lines above and anyway, "MemTotal" is a part of
the diff context ;-)
with no units AFAICT.

But I was unclear. I wasn't referring to /proc/meminfo, but instead
to /proc/net/sockstat and its units:

sockets: used 1224
TCP: inuse 11 orphan 1 tw 1 alloc 26 mem 3
UDP: inuse 4 mem 2
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0

E.g., for TCP and UDP, are those socket counts or some unit of memory?
If units of memory, what unit size?
Ah, these are in 4k pages, AFAIU.
And, as it seems /proc/net/sockstat lacks a description in proc.5 at
all...
thanks.
-- 
~Randy
-- 
Sincerely yours,
Mike.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help