ipv4指令优化以及Invalid argument错误解析

 ipv4指令优化以及Invalid argument错误解析linux

2017年08月11日 11:34:05nginx

阅读数:399网络

为了使nginx中ipv4优化参数长久生效,能够将参数设置追加到/etc/sysctl.conf文件中。并发

net.core.netdev_max_backlog参数

net.core.netdev_max_backlog = 262144
  • 1

用于设置内核没法及时处理网络接口收到的数据包时容许发送到队列的最大数据包数目,默认为128(不一样linux系统会存在差别)。tcp

net.core.somaxconn参数

net.core.somaxconn = 262144
  • 1

用于设置系统同时发起的TCP链接数,数值较小时,没法应付高并发情形,致使链接超时、重传等问题。函数

net.ipv4.tcp_max_orphans参数

net.ipv4.tcp_max_orphans = 262144
  • 1

用于设置最多容许多少TCP套接字不被关联到用户文件句柄。一旦超过该数值,没有关联到文件句柄的TCP套接字将会被复位,同时给出警告信息。在系统内存充足的状况下可增大该值。高并发

net.ipv4.tcp_max_syn_backlog参数

net.ipv4.tcp_max_syn_backlog = 262144
  • 1

用于设置还没有收到客户端确认信息的链接请求的最大值,在系统内存充足的状况下可增大该值。大数据

net.ipv4.tcp_timestamps参数

net.ipv4.tcp_timestamps = 0
  • 1

用于设置时间戳,赋值为0意味着禁用TCP时间戳的支持。优化

net.ipv4.tcp_synack_retries参数

net.ipv4.tcp_synack_retries = 1
  • 1

用于设置内核放弃TCP链接以前向客户端发送SYN+ACK包的数量,设置的是TCP三次握手中的第二次握手,通常设置为1.spa

net.ipv4.tcp_syn_retries参数

net.ipv4.tcp_syn_retries = 1
  • 1

与net.ipv4.tcp_synack_retries参数相似,用于设置内核放弃TCP链接以前向客户端发送SYN包的数量。

更新生效

/sbin/sysctl -p
  • 1

使用上述指令,将会是/etc/sysctl.conf中的修改生效。不过此时会提示一个问题:“sysctl: setting key ‘net.core.somaxconn’: 无效的参数”,产生这个错误的缘由在于net.core.somaxconn参数的值在inet_listen()函数中设置为不该该超过USHRT_MAX,即65535,而上述配置中使用的262144远远超过了上限,于是提示问题,解决方法以下:

net.core.somaxconn = 65535
  • 1

指令生效后,会提示以下信息:

root@**-VirtualBox:/home# /sbin/sysctl -p
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 65535
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
相关文章
相关标签/搜索