首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LinuxTCP的几个内核参数调优

Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。...即在tcp_timestamps开启(Linux默认开启),tcp_tw_recycle会经常导致下面这种现象。 ?...tcp_slow_start_after_idle 还有一个可能需要调整的参数tcp_slow_start_after_idle,Linux默认是1,即开启状态。...echo 0 > /proc/sys/net/ipv4/tcp_slow_start_after_idle 当然了,Linux启用这个参数也是有理由的,如果我们的网络情况是时刻在变化的,例如拿个手机到处移动...Linux 新版本 /* TCP initial congestion window */ #define TCP_INIT_CWND 10 总结 Linux提供了一大堆内参参数供我们进行调优,其默认设置的参数在很多情况下并不是最佳实践

5.9K294
您找到你想要的搜索结果了吗?
是的
没有找到

Nginx 参数 tcp_nodelay 详解

一、知识准备 在nginx优化中有个经常需要设置的参数tcp_nodelay 该参数最核心的功能,就是把小包组成成大包,提高带宽利用率也就是著名的nagle算法 tcp协议中,有一个现象:应用层数据可能很低...docker 18.06.0-ce 客户端 : 192.168.17.171 服务端 : 192.168.17.173 三、打开nagle算法 192.168.17.173,先准备一个nginx配置文件.../tmp# tcpdump -i ens3 port 80 -afexnnvv -w nginx_ab.cap 在192.168.17.171,使用ab压测工具对该端口进行放量 注意:必须使用 -k 参数...流 选取一个片段来分析 ● 在Linux中,默认打开了延迟确认,所谓延迟确认,就是不是收到每个请求都发送一次ack,而是等待一段时间,如果这段时间正好有包需要发送,就坐着“顺风车”一起发出,否则超时后单独发送...nagle算法是需要等到对端ack来临,或者凑满一个mss之后才发送数据包;而延迟确认针对的是ack,ack会等待“顺风车”,如果有,就乘坐顺风车发送,否则等待超时之后单独发送 ● 本文中延迟确认是Linux

4.5K30

Linux网络编程TCP

TCP/IP协议 TCP/IP 协议栈是一系列网络协议(protocol)的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。...OSI 7层模型和TCP/IP四层网络模型对应关系 计算机网路基础的知识不过多讲解,主要是让大家明白接下来的Linux网络编程数据流属于那一层,具体如下图 TCP/IP协议数据流示意图 我们接下来讲解的...Linux网络编程Tcp协议是属于传输层的协议 Linux Socket 网络编程 TCP协议 TCP是面向连接的可靠的传输层协议。...TCP编程 Linux中的网络编程是通过socket接口来进行的。socket是一种特殊的I/O接口,它也是一种文件描述符。常用于不同机器上的进程之间的通信,当然也可以实现本地机器上的进程之间通信。...read()相同,参数flags是传输控制标志,UDP再做纤细介绍.

5.4K30

Linux TCP RST情况

但我检查过线上的tomcat配置,是没有使用该设置的,而且线上的服务器都使用了nginx进行反向代理,所以并不是该原因导致的。关于该原因上面的oracle文档也谈到了并给出了解释。...然后是客户端和服务器统一使用TCP长连接:客户端使用TCP长连接很容易配置(直接设置HttpClient就好),而服务器配置长连接就比较麻烦了,就拿tomcat来说,需要设置tomcat的maxKeepAliveRequests...、connectionTimeout等参数。...另外如果使用了nginx进行反向代理或负载均衡,此时也需要配置nginx以支持长连接(nginx默认是对客户端使用长连接,对服务器使用短连接)。...根据80/20原理,1ms可以忽略不计;又考虑到长连接的扩展性不如短连接好、修改nginx和tomcat的配置代价很大(所有后台服务都需要修改);所以这里并没有使用长连接。

5.7K10

从Memcached的socket了解TCP参数

于是tcp套接字就有了这样一个保持存活的选项.即如果在2小时(/proc/sys/net/ipv4/tcp_keepalive_time 7200 即2小时)内该套接字的任何一方向上都没有数据交换,TCP...对于close减少引用计数,主要是用在多进程环境中,子进程继承父进程的fd, 2、shutdown函数依赖与参数howto,但是它不会将描述符引用计数减一而是直接切断连接. shutdown函数可以关闭一半...struct linger { int l_onoff; /* 0 = off, nozero = on */ int l_linger; /* linger time */ }; 第一个参数为这个选项的开关...,第二个参数为延迟时间 有三种情况: 置 l_onoff为0,则该选项关闭,l_linger的值被忽略,等于内核缺省情况,close调用会立即返回给调用者,如果可能将会传输任何未发送的数据; 设置l_onoff...TCP_NODELAY TCP_NODELAY是为了关闭Nagle's Algorithm.

43720

郭健:Linux内存管理系统参数配置之overcommit

一、前言 终于可以进入Linux kernel内存管理的世界了,但是从哪里入手是一个问题,当面对一个复杂系统的时候,有时候不知道怎么开始。...最开始的系列文章选择了vm运行参数这个主题。执行ls /proc/sys/vm的命令,你可以看到所有的vm运行参数,本文选择了overcommit相关参数来介绍。 本文的代码来自4.0内核。...三、参数介绍 1、overcommit_memory。overcommit_memory这个参数就是用来控制内核对overcommit的策略。该参数可以设定的值包括: ?...BTW,我不太喜欢这个参数的命名,更准确的命名应该类似vm_overcommit_policy什么的,大概是历史的原因,linux kernel一直都是保持了这个符号。...vm运行参数之(一):overcommit相关的参数

2.2K30
领券