浅析Linux内核 TCP/IP、Socket参数调优

本文详细解析了Linux内核中的TCP/IP参数,包括位于/proc/sys/net目录下的关键设置,如socket缓冲区大小、TCP连接管理和保持、回收等。建议将调整后的参数写入/etc/sysctl.conf文件,并通过'sysctl -p'命令应用。文章还讨论了sysctl命令和/proc文件系统在内核参数调优中的作用,强调了谨慎调节内核参数以避免影响系统性能的重要性。
摘要由CSDN通过智能技术生成

【好文推荐】

virtio-net 实现机制【一】(图文并茂)

浅析linux内核网络协议栈--linux bridge

深入理解SR-IOV和IO虚拟化

/proc/sys/net目录

所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数:

参数(路径+文件) 描述 默认值 优化值
/proc/sys/net/core/rmem_default 默认的TCP数据接收窗口大小(字节)。 229376 256960
/proc/sys/net/core/rmem_max 最大的TCP数据接收窗口(字节)。 131071 513920
/proc/sys/net/core/wmem_default 默认的TCP数据发送窗口大小(字节)。 229376 256960
/proc/sys/net/core/wmem_max 最大的TCP数据发送窗口(字节)。 131071 513920
/proc/sys/net/core/netdev_max_backlog 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 1000 2000
/proc/sys/net/core/somaxconn 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。 128 2048
/proc/sys/net/core/optmem_max 表示每个套接字所允许的最大缓冲区的大小。 20480 81920
/proc/sys/net/ipv4/tcp_mem 确定TCP栈应该如何反映内存使用,每个值的单位都是内存页(通常是4KB)。第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的BDP可以增大这些值(注意,其单位是内存页而不是字节)。 94011 125351 188022 131072 262144 524288
/proc/sys/net/ipv4/tcp_rmem 为自动调优定义socket使用的内存。第一个值是为socket接收缓冲区分配的最少字节数;第二个值是默认值(该值会被rmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是接收缓冲区空间的最大字节数(该值会被rmem_max覆盖)。 4096 87380 4011232 8760 256960 4088000
/proc/sys/net/ipv4/tcp_wmem 为自动调优定义socket使用的内存。第一个值是为socket发送缓冲区分配的最少字节数;第二个值是默认值(该值会被wmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是发送缓冲区空间的最大字节数(该值会被wmem_max覆盖)。 4096 16384 4011232 8760 256960 4088000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值