文档章节

二、linux网络内核调优:数据重传

for。
 for。
发布于 2016/07/23 12:30
字数 430
阅读 72
收藏 3
点赞 0
评论 0

在 TCP 完成三次握手后,进入数据传输阶段。

与该阶段数据重传的系统参数有(系统默认值):

net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15

在 /etc/sysctl.conf 中添加或修改,执行sysctl -p 即可生效。

tcp_retries1

数据重传超过阈值tcp_retries1,主要的动作就是更新路由缓存。

查看系统设置

cat /proc/sys/net/ipv4/tcp_retries1
3

测试

略,还不知道怎么测

tcp_retries2

数据重传次数超过 tcp_retries2 会直接放弃重传,关闭 TCP 流。

查看系统设置

cat /proc/sys/net/ipv4/tcp_retries2 
15

测试

测试代码:http://my.oschina.net/lowkey2046/blog/716557

服务端(192.168.1.24),客户端(192.168.1.21)

  1. 启动服务端程序
  2. 启动客户端程序
  3. 客户端写入数据
  4. 服务端断开网络
  5. 客户端再次写入数据
./client 192.168.1.24
hello world
hello world
hello?
read: Connection timed out
close sockfd

wireshark 抓包

wireshark 截图

重传时间拟合

  No. timestamp  time diff  fitting
  -1    13.2195
   0    13.4253     0.0000   0.0000
   1    13.6333     0.2080   0.2000
   2    14.0493     0.4160   0.4000
   3    14.8813     0.8320   0.8000
   4    16.5493     1.6680   1.6000
   5    19.8813     3.3320   3.2000
   6    26.5532     6.6719   6.4000
   7    39.9152    13.3620  12.8000
   8    66.6013    26.6861  25.6000
   9   119.9133    53.3120  51.2000
  10   226.6674   106.7541 102.4000
  11   346.9852   120.3178 120.0000
  12   467.3078   120.3226 120.0000
  13   587.6253   120.3175 120.0000
  14   707.9521   120.3268 120.0000
  15   828.2653   120.3132 120.0000

如果 RTT 比较小,那么 RTO 初始值就约等于下限 200ms。

No.-1 为数据的正常发送。

No.0 为第一次重传。重传计数器从 0 开始?? 这个地方还有点疑惑

1 < No. <= 10 时间按指数增长。 RTT * 2^No.

No. >10 每次增加 120秒。

优化方案

可以通过减小该数值,减少重试次数,缩短重试时间。

参考文档

聊一聊重传次数

TCP/IP重传超时--RTO

© 著作权归作者所有

共有 人打赏支持
for。

for。

粉丝 80
博文 47
码字总数 18257
作品 0
深圳
程序员
linux+Oracle集群课程全面升级

作为国内最早从事开源架构师级课程研发的公司,从2006年10月开始,荣新稳步提升,将互联网运维作为主导就业方向,并将Linux集群架构课程发展成为国内最顶级、覆盖技术最全面的Linux课程,作为...

张琦
06/26
0
0
linux系统调优-存储(内存、硬盘)

首先一个基本概念: 存储系统存储速度的快->慢: 内存->闪存->磁盘 因为内存的价格限制以及操作系统支持的限制,我们只能从磁盘这块来看,可见磁盘正是存储系统的最大瓶颈所在。 **下面具体提...

月黑风高杀人夜
2015/08/21
0
0
Linux未来监控tracing框架——eBPF

eBPF源于早年间的成型于 BSD 之上的传统技术 BPF(Berkeley Packet Filter)。BPF 的全称是 Berkeley Packet Filter,顾名思义,这是一个用于过滤(filter)网络报文(packet)的架构。 BPF 是在 ...

binarydady
05/07
0
0
Linux 调试三剑客——strace,lsof,tcpdump

Brendan D. Gregg 专注 Linux performance & tuning 许多年,其博客 brendangregg.com 里关于分析和调优的干货琳琅满目。一篇名为 Linux Performance 文章全面而详细的整理了常用工具,覆盖了...

koala bear
2015/01/03
0
0
从传统运维到云运维演进历程之软件定义存储(三)下

上回书讲到了运维小哥的调优方法论(上),对于Ceph运维人员来说最头痛的莫过于两件事:一、Ceph调优;二、Ceph运维。调优是件非常头疼的事情,下面来看看运维小哥是如何调优的。 关卡二:部...

Devin
2016/10/11
0
0
百度云英雄帖_高级运维开发工程师

职位描述 -中国最大最好的云存储服务欢迎你加入,如果你觉得使用起来有不爽的地方,除了反馈外,欢迎加入我们,一起改善;如果你有更好的优化建议,加入我们,一起打造更好的百度云服务。 工...

VnlyZhang
2014/12/16
0
1
如何提高 Linux 上 socket 性能

加速网络应用程序的 4 种方法 使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以...

miffa
2014/12/16
0
0
你可能没有细究过的TCP/IP

本文原载于个人微信公众号 CodeSheep,欢迎订阅 ↓↓↓ 作为互联网时代伟大发明的TCP/IP技术可以说对当今时代产生了深刻的影响。经过近一个月的学习摸索,基本清楚了TCP/IP的面貌。由于TCP/I...

CodeSheep
02/28
0
3
Linux内核Socket参数调优

可调优的内核变量存在两种主要接口:sysctl命令和/proc文件系统,proc中与进程无关的所有信息都被移植到sysfs中。IPV4协议栈的sysctl参数主要是sysctl.net.core、sysctl.net.ipv4,对应的/pr...

China_OS
2013/03/21
0
0
tcp ,基础概念 三次握手,4次挥手

一。为什么建链接要3次握手,断链接需要4次挥手? 对于建链接的3次握手:主要是要初始化Sequence Number 的初始值。通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Ini...

昏鸦
2015/02/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
0
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部