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 2001From: 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.