linux系统tcp连接优化,linux 系统 内核tcp连接优化

1、查询tcp连接

#netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state)

print key,"\t",state[key]}'

#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,

S[a]}'

状态:描述

CLOSED:无连接是活动的或正在进行

LISTEN:服务器在等待进入呼叫

SYN_RECV:一个连接请求已经到达,等待确认

SYN_SENT:应用已经开始,打开一个连接

ESTABLISHED:正常数据传输状态

FIN_WAIT1:应用说它已经完成

FIN_WAIT2:另一边已同意释放

TITMED_WAIT:等待所有分组死掉

LOSING:两边同时尝试关闭

TIME_WAIT:另一边已初始化一个释放

LAST_ACK:等待所有分组死掉

2、内核优化tcp连接

vi

/etc/sysctl.conf

编辑/etc/sysctl.conf文件,增加三行:

引用

net.ipv4.tcp_syncookies = 1

如果没有/proc/sys/net/ipv4/tcp_syncookies说明内核不支持

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

说明:

net.ipv4.tcp_syncookies = 1 表示开启SYN

Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT

sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT

sockets的快速回收,默认为0,表示关闭。

再执行以下命令,让修改结果立即生效:

/sbin/sysctl -p

用以下语句看了一下服务器的TCP状态:

netstat -n | awk '/^tcp/

{++S[$NF]} END {for(a in S) print a, S[a]}'

返回结果如下:

ESTABLISHED 1423

FIN_WAIT1 1

FIN_WAIT2 262

SYN_SENT 1

TIME_WAIT 962

效果:处于TIME_WAIT状态的sockets从原来的10000多减少到1000左右。处于SYN_RECV等待处理状态的sockets为0,原来的为50~300。

3、修改最大连接

#echo 65536 > /proc/sys/net/ipv4/ip_conntrack_max

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值