2011-03-24 17:33:36     分类: 其他
摘要: 编辑/etc/sysctl.conf……

编辑/etc/sysctl.conf,追加或修改一下命令:

net.core.netdev_max_backlog = 262144 
net.core.somaxconn = 262144
net.core.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.net.core.netdev_max_backlog参数

表示当前每个网络接口接收数据包的速率比内核处理处理这些包的速度快时,允许发送到队列的数据包的最大数目。一般Linux默认是128.

2.net.core.somaxconn

用于调节系统同时发起的TCP连接数,默认值为128. 如果在这个参数设置过小,在高并发场景下,可能会导致链接超时或者重传问题,所以需要根据实际需要并结合并发数来调节该值。

3.net.core.tcp_max_orphans

这个参数用于设定系统中做多允许存在多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,没有与用户文件句柄关联的TCP套接字立即被复位,同时给出警告信息。这个现实只是为了防止简单的Dos攻击。在系统内存比较充足的情况下,可以增大这个参数的赋值。

4.net.ipv4.tcp_max_syn_backlog

用于记录尚未收到客户端确认信息的连接请求的最大值,128M系统默认是1024.

5.net.ipv4.tcp_timestamps

该参数用于设置时间戳,这可以表面序列号的卷绕。在一个1Gb/s的链路上,遇到以前用过的序列号的概率很大。当此值赋值为0时,警用对于TCP时间戳的支持。在默认的情况下,TCP协议会让内核接受这种异常数据包

6.net.ipv4.tcp_synack_retries

该参数用于设置内核放弃TCP连接之前向客户端发送SYN+ACK包的数量。为了建立对端的连接服务,服务器和客户端需要进行三次握手,第二次握手迄今,内核需要发送SYN并附带一个回应前一个SYN的ACK,这个参数主要影响这个过程,一般赋值为1.

7.net.ipv4.tcp_syn_retries

作用于上一个参数类似,设置内核放弃建立连接之前发送SYN包的数量,赋值和上一个参数一样即可。

最后运行以下命令使之生效

/sbin/sysctl -p

文章标签: