gpt4 book ai didi

linux - 每个 TCP/IP 网络连接的 Linux 内核消耗多少内存?

转载 作者:IT王子 更新时间:2023-10-29 00:13:14 26 4
gpt4 key购买 nike

Linux 内核(在内核地址空间中)每个 TCP/IP 网络连接平均消耗多少内存?

最佳答案

对于一个TCP连接消耗的内存取决于

  1. sk_buff 的大小(linux 内核使用的内部网络结构)

  2. 连接的读写缓冲区

可以根据需要调整缓冲区的大小

root@x:~# sysctl -A | grep net | grep mem

检查这些变量

这些指定内核中所有网络连接的最大默认内存缓冲区使用量

net.core.wmem_max = 131071

net.core.rmem_max = 131071

net.core.wmem_default = 126976

net.core.rmem_default = 126976

这些指定特定于 tcp 连接的缓冲区内存使用

net.ipv4.tcp_mem = 378528   504704  757056

net.ipv4.tcp_wmem = 4096 16384 4194304

net.ipv4.tcp_rmem = 4096 87380 4194304

指定的三个值是“最小默认最大”缓冲区大小。所以一开始linux会为每个连接使用默认值的读写缓冲区。随着连接数量的增加,这些缓冲区将减少[最多到指定的最小值]最大缓冲区值也是如此。

可以使用此 sysctl -w KEY=KEY VALUE 设置这些值

例如。以下命令确保每个连接的读写缓冲区均为 4096。

sysctl -w net.ipv4.tcp_rmem='4096 4096 4096'

sysctl -w net.ipv4.tcp_wmem='4096 4096 4096'

关于linux - 每个 TCP/IP 网络连接的 Linux 内核消耗多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com