Web系统优化之-socket释放复用

1.情景

平时优化web系统,有效提高QPS过程中,很可能着手点多在优化数据库,缓存,虚拟机等,但有一个点容易忽略,就是系统的tcp设置

2.具体说明

如果我们的QPS为3万,但是Tcp的连接数却没有达到3W,这时候就可能是因为服务器socket连接数申请不下来了,但是我们看一下ulimit -n命令,显示有足够用的文件句柄,那为什么会申请不下来呢?
问题的所在关键是tcp链接再经过四次握手结束连接后并不会立刻释放,而是处于timewait状态会再等待一段时间,以防止客户端后续的数据未被接收到。
问题找到后解决就不是那么困难了,只需配置几个参数即可:

#timewait 的数量,默认是 180000。
net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.ip_local_port_range = 1024 65000

#启用 timewait 快速回收。
net.ipv4.tcp_tw_recycle = 1

#开启重用。允许将 TIME-WAIT sockets 重新用于新的 TCP 连接。
net.ipv4.tcp_tw_reuse = 1

结论

这时候再进行压测,不出意外会有不小的性能提升,其实web系统优化不是一个简单的个体优化,而是数据库,编程语言,操作系统,网络等的综合工程,大家共同积累,共同学习,才能走向大师之境!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值