mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-10-21 19:59:27 +00:00
![]() Eric reported that, with 10 million sockets, ss -emoi (about 1000 bytes
output per socket) can easily lead to OOM (buffer would grow to 10GB of
memory).
Limit the maximum size of the buffer to five chunks, 1M each. Render and
flush buffers whenever we reach that.
This might make the resulting blocks slightly unaligned between them, with
occasional loss of readability on lines occurring every 5k to 50k sockets
approximately. Something like (from ss -tu):
[...]
CLOSE-WAIT 32 0 192.168.1.50:35232 10.0.0.1:https
ESTAB 0 0 192.168.1.50:53820 10.0.0.1:https
ESTAB 0 0 192.168.1.50:46924 10.0.0.1:https
CLOSE-WAIT 32 0 192.168.1.50:35228 10.0.0.1:https
[...]
However, I don't actually expect any human user to scroll through that
amount of sockets, so readability should be preserved when it matters.
The bulk of the diffstat comes from moving field_next() around, as we now
call render() from it. Functionally, this is implemented by six lines of
code, most of them in field_next().
Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Fixes:
|
||
---|---|---|
bash-completion | ||
bridge | ||
devlink | ||
doc/actions | ||
etc/iproute2 | ||
examples | ||
genl | ||
include | ||
ip | ||
lib | ||
man | ||
misc | ||
netem | ||
rdma | ||
schema | ||
tc | ||
testsuite | ||
tipc | ||
.gitignore | ||
configure | ||
COPYING | ||
Makefile | ||
README | ||
README.devel | ||
README.distribution | ||
README.iproute2+tc | ||
README.lnstat |
This is a set of utilities for Linux networking. Information: https://wiki.linuxfoundation.org/networking/iproute2 Download: http://www.kernel.org/pub/linux/utils/net/iproute2/ Stable version repository: git://git.kernel.org/pub/scm/network/iproute2/iproute2.git Development repository: git://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git How to compile this. -------------------- 1. libdbm arpd needs to have the berkeleydb development libraries. For Debian users this is the package with a name like libdbX.X-dev. DBM_INCLUDE points to the directory with db_185.h which is the include file used by arpd to get to the old format Berkeley database routines. Often this is in the db-devel package. 2. make The makefile will automatically build a config.mk file which contains definitions of libraries that may or may not be available on the system such as: ATM, ELF, MNL, and SELINUX. 3. To make documentation, cd to doc/ directory , then look at start of Makefile and set correct values for PAGESIZE=a4 , ie: a4 , letter ... (string) PAGESPERPAGE=2 , ie: 1 , 2 ... (numeric) and make there. It assumes, that latex, dvips and psnup are in your path. 4. This package includes matching sanitized kernel headers because the build environment may not have up to date versions. See Makefile if you have special requirements and need to point at different kernel include files. Stephen Hemminger stephen@networkplumber.org Alexey Kuznetsov kuznet@ms2.inr.ac.ru