码迷,mamicode.com
首页 > 其他好文 > 详细

kernel中socket buffer相关参数

时间:2019-01-11 13:07:04      阅读:492      评论:0      收藏:0      [点我收藏+]

标签: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中socket buffer相关参数

标签:kernel   缓冲区   没有   rcv   不清楚   res   pre   其他   参考   

原文地址:https://www.cnblogs.com/scaugsh/p/10254483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!