按照文档的说法,貌似长久以来我对于tcp_fin_timeout的理解都是错误的

先备份在这里,再验证

提高Linux应对短连接的负载能力

在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT
状态的socket。你可以用下面的命令看到:

netstat -ant| grep -i time_wait

有时候,这个数目是惊人的:

netstat -ant|grep -i time_wait |wc -l

可能会超过三四万。这个时候,我们需要修改 linux kernel 的 tcp time wait的时间,缩短之,有个 sysctl
参数貌似可以使用,它是 /proc/sys/net/ipv4/tcp_fin_timeout,缺省值是
60,也就是60秒,很多网上的资料都说将这个数值设置低一些就可以减少netstat
里面的TIME_WAIT状态,但是这个说法是错误的。经过认真阅读Linux的内核源代码,我们发现这个数值其实是输出用的,修改之后并没有真正的读回内核中进行使用,而内核中真正管用的是一个宏定义,在
$KERNEL/include/net/tcp.h里面,有下面的行:

#define TCP_TIMEWAIT_LEN (60*HZ)

而这个宏是真正控制 TCP TIME_WAIT 状态的超时时间的。如果我们希望减少 TIME_WAIT
状态的数目(从而节省一点点内核操作时间),那么可以把这个数值设置低一些,根据我们的测试,设置为 10 秒比较合适

 

最新文章

  1. python实现网络爬虫下载天涯论坛帖子
  2. 检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败
  3. npm 加速方案
  4. 附7 turbine
  5. Scala 深入浅出实战经典 第47讲:Scala多重界定代码实战及其在Spark中的应用
  6. asp.net 捕获全局未处理异常的几种方法
  7. Home-brew 安装&卸载 Git
  8. http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html
  9. C语言指针5分钟教程
  10. 怎样在osg中动态的设置drawable的最近最远裁剪面
  11. TabbarItem超炫小动画
  12. where条件的lambda转化为sql语句
  13. 004_Python之all()\any()
  14. eclipse+pyDev
  15. Tomcat:在centos中做成自启动服务
  16. 【Espruino】NO.07 获取电压值
  17. CH4302 Interval GCD
  18. docker 创建容器的时候的坑
  19. 征战jQuery
  20. Vue初步认识

热门文章

  1. MySQL学习总结 (InnoDB)
  2. 走迷宫(bfs, 最短路)
  3. 利用webhook实现发送通知到Slack
  4. Python数据分析(基础)
  5. byte中的数值为什么是127到-128?
  6. ER图的构建
  7. linux中service模板
  8. PHP命令行常用参数说明和使用
  9. 问题--Notepad++保存文件遇到Failed to save file
  10. 洛谷 P1966 火柴排队 题解