标签:kernel 缓冲区 没有 rcv 不清楚 res pre 其他 参考
net.core.rmem_default:内核给单个socket分配的默认读buffer大小
net.core.rmem_max:所有socket的读buffer不能超过这个值(不清楚tcp和udp有没有分开)
net.core.wmem_default:内核给单个socket分配的默认写buffer大小
net.core.wmem_max:所有socket的写buffer不能超过这个值(不清楚tcp和udp有没有分开)
net.ipv4.tcp_mem:内核根据下面的数值对tcp socket内存进行限制
low:如果全部tcp socket分配的内存少于这个值,不做限制
pressure:如果全部tcp socket分配的内存超过这个值,内核将调整每个tcp socket的内存
high:全部tcp socket分配的内存不超过这个值,这个值覆盖其他限制
net.ipv4.tcp_rmem
min:当所有tcp socket使用内存紧张时,内核保证至少给每个tcp socket的读buffer分配这个值的内存大小
default:每个tcp socket默认读buffer缓冲区,会覆盖net.core.rmem_default
max:所有tcp socket读buffer总大小上限,不会覆盖net.core.rmem_max
net.ipv4.tcp_wmem
min:当所有tcp socket使用内存紧张时,内核保证至少给每个tcp socket的写buffer分配这个值的内存大小
default:每个tcp socket默认写buffer缓冲区,会覆盖net.core.wmem_default
max:所有tcp socket写buffer总大小上限,不会覆盖net.core.wmem_max
net.ipv4.udp_mem:内核根据下面的数值对udp socket内存进行限制
low:如果全部udp socket分配的内存少于这个值,不做限制
pressure:如果全部udp socket分配的内存超过这个值,内核将调整每个udp socket的内存
high:全部udp socket分配的内存不超过这个值,这个值覆盖其他限制
net.ipv4.udp_rmen_min:当所有udp socket使用内存紧张时,内核保证至少给每个udp socket的读buffer分配这个值的内存大小
net.ipv4.udp_wmen_min:当所有udp socket使用内存紧张时,内核保证至少给每个udp socket的写buffer分配这个值的内存大小
getsockopt()可以设置socket相关属性,其中有SO_RCVBUF和SO_SNDBUF属性设置每个socket读写buffer大小
对于udp:
socket属性 内核属性
SO_RCVBUF core.rmem_default
SO_SNDBUF core.wmem_default
对于tcp:
socket属性 内核属性
SO_RCVBUF tcp_rmem.default
SO_SNDBUF tcp_wmem.default
以上参考:
http://man7.org/linux/man-pages/man7/udp.7.html
http://man7.org/linux/man-pages/man7/tcp.7.html
http://man7.org/linux/man-pages/man7/socket.7.html
标签:kernel 缓冲区 没有 rcv 不清楚 res pre 其他 参考
原文地址:https://www.cnblogs.com/scaugsh/p/10254483.html