与网络编程有关的部分内核参数

本文介绍了与网络编程密切相关的内核参数,包括/proc/sys/fs和/proc/sys/net目录下的参数,如file-max、epoll/max_user_watches、tcp_max_syn_backlog和tcp_mem等。这些参数影响着系统的文件描述符限制、TCP连接管理和内存使用,对于服务器性能优化至关重要。可通过修改内核参数或使用sysctl命令进行调整,永久修改则需编辑/etc/sysctl.conf并执行sysctl -p。
摘要由CSDN通过智能技术生成

      几乎所有的内核模块,包括内核核心模块和驱动程序,都在/proc/sys 文件系统下提供了某些配置文件以提供用户调整模块的属性和行为。通常一个配置文件对应一个内核参数,文件名就是参数的名字,文件的内容是参数的值。 我们可以通过命令sysctl -a 查看所有这些内核参数。下面说明与网络编程关系较为紧密的部分内核参数。

 

一、 / proc/sys/fs 目录下的部分文件

       /proc/sys/fs 目录下的内核参数都与文件系统有关。对于服务器程序来说,其中最重要的是如下的两个参数:

 

  • /proc/sys/fs/fs/file-max,系统级文件描述符数限制。 直接修改这个参数和<<linux 最大文件描述符>>中修改方法有相同的效果(不过这些都是临时修改)。一般修改/proc/sys/fs/file-max 后,应用程序需要把/proc/sys/fs/inode-max 设置为/proc/sys/fs/fs/file-max 值的3-4倍,否则可能导致i 节点数不够用。
  • /proc/sys/fs/epoll/max_user_watches,一个用户能够往epoll 内核事件表注册的事件总量。 它是指该用户打开的所有epoll实例总共能监听的事件数目,而不是单个epoll实例能监听的事件数目。往epoll内核事件表中注册一个事件,在32位系统上大概消耗90字节的内核空间,在64位系统上则消耗160字节的内核空间。所以,这个内核参数限制了epoll使用的内核内存总量。目前,默认的max_user_watches 的值大约可用的低内存的1/25(4%) ,再除以相应机器上每个文件描述符消耗的字节数(64位:160或者32位:90)

 

二、 /proc/sys/net 目录下的部分文件

       内核中网络模块的相关参数都位于/proc/sys/net 目录下,其中和TCP/IP 协议相关的参数主要位于如下三个目录中:core 、ipv4 、ipv6 。

      按默认值分配, 读写缓冲区默认大小都是87K和16K, 最低是4K和4K, 最高是2M,2M, 实际使用默认值最低也要保留8K,8K. 

  • /proc/sys/net/core/somaxconn,指定listen监听队列里,能够建立完整连接从而进入ESTABLISHED 状态的socket 的最大数目。
  • /proc/sys/net/ipv4/tcp_max_syn_backl
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值