Bug 211375 - Memory leak about TCP slab which have too big used sockets
Summary: Memory leak about TCP slab which have too big used sockets
Status: NEEDINFO
Alias: None
Product: Networking
Classification: Unclassified
Component: IPV4 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Stephen Hemminger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-27 01:48 UTC by bianmingkun@gmail.com
Modified: 2021-01-28 16:31 UTC (History)
0 users

See Also:
Kernel Version: 4.18.16
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description bianmingkun@gmail.com 2021-01-27 01:48:33 UTC
Memory leak occurred in linux of 4.18.16, we use nginx as a server, I found some problems related to TCP as following:
1. slabtop a:
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
14081971 13980986 99% 2.06K 938799 15 30041568K TCP

2. cat /proc/meminfo
SUnreclaim: 31405028 kB

3. cat /proc/net/sockstat
sockets: used 13976123
TCP: inuse 18 orphan 0 tw 44 alloc 18 mem 1
UDP: inuse 54 mem 45
UDPLITE: inuse 0 RAW: inuse 9
FRAG: inuse 0 memory 0

4. lsof
there are 19000 line, it seems like ok.

As above, it seems that tcp sk memory leak, "sockets: used 13976123" illustrate that "net->core.sock_inuse" is too big, which increase in inet_create(socket create) or sk_clone_lock(child socket create) and decrease in __sk_free, I kill almost all of application layer program, but the "sockets: used" almostly not reduce.

Do you have any suggestions for this problem, Thanks.
Comment 1 Stephen Hemminger 2021-01-28 16:31:28 UTC
That kernel version is end of live in two years ago.
Please reproduce with a supported kernel version.

A good choice would be 4.19.170 which the 19th LTS release.
This kernel will be supported until 2024

Note You need to log in before you can comment on or make changes to this bug.