net.ipv4.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 秒比较合适
net.ipv4.tcp_fin_timeout的错误理解的更多相关文章
- 关于网上大量对Vue双向绑定的错误理解
对于Vue的双向绑定,现在基本是个前端都听说过,面试官也喜欢问这个问题.但对于Vue双向绑定的原理,掘金.博客园和segmentfault等技术社区充斥着大量的错误文章.这些文章的题目基本样子如下 “ ...
- 命题作文:在一棵IPv4地址树中彻底理解IP路由表的各种查找过程
这是一篇命题作文.近期一直想写点东西,但一直找不到题目.正好收到一封邮件,有人问我Linux路由表的布局问题以及路由缓存的问题,加之前些日子又帮人做了一个片上路由表,所以认为这是个好题目,索性花了多半 ...
- Mybatis-select-返回值类型错误理解
Mybatis :Cause: java.lang.UnsupportedOperationException异常: 今天在写一个练手项目,作为初学Mybatis的小白,想着这里findByEmp_i ...
- 对mysql事务提交、回滚的错误理解
一.起因 begin或者START TRANSACTION开始一个事务 rollback事务回滚 commit 事务确认 人们对事务的解释如下:事务由作为一个单独单元的一个或多个SQL语句组成,如果其 ...
- [RxJava]在学习RxJava中的错误理解
关于RxJava语法的问题与理解 最近看到一个blog-RxJava 写到关于Observable数据异步加载的介绍.针对fromCallable和just操作符在使用上的问题来跟大家针对代码进行 ...
- C#Contains方法的错误理解
一,我们先看看代码: string aa = "1,2,3,44"; "; "); "); Console.WriteLine("a输出&q ...
- 汇编中call printf参数压栈时错误理解
EAX, ECX,EDX,EBX均可以32bit,16bit,8bit访问,如下所示: <-------------------EAX------------------------>|& ...
- 关于Android中RemoveView的错误理解
我以前一直以为,一个View被removeView了之后,就会被回收.其实不是这样的.如果有人引用它. 它还是会存在的.removeView和View被回收没有必然的关系.一个View被removeV ...
- mysql 易错误理解
MySQL作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些我们平时不太注意的地方,一来为了有趣,二来为了不让自己踩坑. ...
随机推荐
- 一个自己编写的简单AC自动机代码-----AC automata get √
最近一直在优化项目中字符串匹配的问题,于是就想起了自动机,之前也看过一些文章,一直没有实现,现在项目中要用,然后又看了一些关于AC自动机的文章,这里实现了一个简单的AC自动机的小接口,我是实现自动机状 ...
- java基础(12)---异常
一.throws和throw 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. 区别: 1.概念 throws E1,E2,E3只是告诉程序这个 ...
- gdb调试(一)
对于gdb是什么,这里就不多说了,只要是程序员一般都听说过,像java开发会用到集成开发工具eclipse,里面调试起来非常方便,全是可视化的,但是如果在linux下编写的c程序,用可视化的调试就没这 ...
- 微信小程序API~检查登录状态
wx.checkSession(Object object) 检查登录态是否过期. 通过 wx.login 接口获得的用户登录态拥有一定的时效性.用户越久未使用小程序,用户登录态越有可能失效.反之如果 ...
- ted演讲小总结(持续更新_12月15日)
目录 2019年12月1日 星期日 2019年12月2日 星期一 2019年12月3日 星期二 2019年12月8日 星期日 2019年12月15日 星期日(这个演讲相对来说不好理解,因为这类逻辑暂时 ...
- scala 中的集合类
集合最重要的继承路线 —— Traversable -> Iterable -> Seq -> LinerSeq -> List Traversable 中的公有方法: 分类 ...
- 记录一下使用swiper遇到的坑
loop 设置为true 则开启loop模式.loop模式:会在原本slide前后复制若干个slide(默认一个)并在合适的时候切换,让Swiper看起来是循环的. loop模式在与free模式同用时 ...
- 求序列A中每个数的左边比它小的数的个数(树状数组)
给定一个有N个正整数的序列A(N<=10^5,A[i]<=10^5),对序列中的每一个数,求出序列中它左边比它小的数的个数. 思路:树状数组的经典应用(裸题) #include <i ...
- SP1825 【FTOUR2 - Free tour II】
# \(SP1825\) 看到没有人用老师的办法,于是自己写一下思路 思路第一步:排除旧方法 首先这道题和\(4178\)不一样,因为那道题是计数,而这道题是求最值,最值有个坏处,就是对于来自相同子树 ...
- vs 在高分屏下开发 winform 配置
一.窗体控件大小 第一种方法:使用网格避免整除误差 在选项中将Windows窗体设计器的LayoutMode(布局模式)改成SnapToGrid(对齐到网格),并将Default Grid Cell ...