首页 > 其他分享 >从系统cache中查看 tcp_metrics item

从系统cache中查看 tcp_metrics item

时间:2024-04-07 20:22:25浏览次数:22  
标签:Metrics 表项 cache TCP metrics tcp 连接

从系统cache中查看 tcp_metrics item
ip tcp_metrics show
  tcp_metrics会记录下之前已关闭TCP连接的状态,包括发送端CWND和ssthresh,如果之前网络有一段时间比较差或者丢包比较严重,就会导致TCP的ssthresh降低到一个很低的值,这个值在连接结束后会被tcp_metrics cache 住,在新连接建立时,即使网络状况已经恢复,依然会继承 tcp_metrics 中cache 的一个很低的ssthresh 值,对于rrt很高的网络环境,新连接经历短暂的“慢启动”后(ssthresh太小),随即进入缓慢的拥塞控制阶段(rt太高,CWND增长太慢),导致连接速度很难在短时间内上去。而后面的连接,需要很特殊的场景之下(比如,传输一个很大的文件)才能将ssthresh 再次推到一个比较高的值更新掉之前的缓存值,因此很有很能在接下来的很长一段时间,连接的速度都会处于一个很低的水平。

TCP MetricsPer-Host的。也就是说,TCP Metrics表项应该是基于<源IP,目的IP>二元组的。从一台主机的角度,到达另一个特定地址主机的网络链路状况应该是被两台主机之间的所有连接所共享的。

内核使用tcp_metrics_block表示一条Metrics表项,这些表项根据<源IP,目的IP>组织在tcp_metrics_hash冲突链表表中,记录的值保存在内部tcpm_vals数组

当新建TCP连接时,内核使用下面的接口来为TCP套接字设置TCP Metrics指导下的参数

void tcp_init_metrics(struct sock *sk)

当某条TCP连接收的运行参数发生变化时,比如重新计算RTT了,内核会使用下面的接口来更新它对应的TCP Metrics表项。切记,TCP Metrics表项是Per-Host的,因此,多条TCP连接的套接字可能会更新同一条表项。

void tcp_update_metrics(struct sock *sk)

内核提供ip-tcp_metrics  ip tcp_metrics show命令查看主机上的TCP Metrics表项.

 

标签:Metrics,表项,cache,TCP,metrics,tcp,连接
From: https://www.cnblogs.com/codestack/p/18119799

相关文章

  • 说说TCP为什么需要三次握手和四次挥手?
    一、三次握手三次握手(Three-wayHandshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备过程如下:第一次握手:客户端给服务端发一个SYN报文,并指明客......
  • Spring Boot数据缓存之Spring缓存抽象 @Cacheable初体验
    在数据缓存之Cache规范JSR107中对Spring的缓存抽象有了一定的了解,下面通过示例实战对其深入探讨。需要注意的是使用Spring缓存抽象时要关注两点:①确定那些方法需要被缓存    ②缓存策略具体案例如下:1、导入依赖Mysql、Mybatis、W......
  • 计网:TCP三次握手和四次挥手
    老生常谈的问题,直接参考连接:https://zhuanlan.zhihu.com/p/108504297(存在部分问题,配合下面CSDN)https://blog.csdn.net/m0_56649557/article/details/119492899 自己需要记住的点:三次握手:第一次:客户端:只有SYN置1,发送seq=J第二次:服务端:SYN和ACK都置1,......
  • go | 上传文件 | tcpdump&wireshark 抓包分析
    go上传文件packagemainimport( "fmt" "log" "github.com/gin-gonic/gin")/*执行命令:curl-XPOSThttp://localhost:8080/upload-F"file=@/path/main.zip"-H"Content-Type:multipart/form-data"*/funcmai......
  • Rancher-rke: E0404 14:22:44.616099 5841 memcache.go:287] couldn‘t get resource
    一、根因    1、非正常关闭了主机。    2、导致docker上的metrics容器进程挂掉。二、解决办法    1、重启docker        systemctlrestartdocker    2、清理处于Exited状态的pod        dockerrm`dockerps-a|......
  • 【爬虫】debug篇-关于fake_useragent无法使用:Error occurred during loading data. Tr
    Erroroccurredduringloadingdata.Tryingtousecacheserverhttps://fake-useragent.herokuapp.com/browsers/0.1.11Traceback(mostrecentcalllast):File"D:\python\lib\site-packages\fake_useragent\utils.py",line154,inloadfori......
  • 突破编程_C++_网络编程(TCPIP 四层模型(传输层))
    1传输层的功能与作用在TCP/IP四层模型中,传输层位于网络层之上和应用层之下,负责在源主机和目标主机之间提供端到端的可靠数据传输服务。传输层的主要功能与作用体现在以下几个方面:分段与重组:由于网络层的数据包大小有限制(如IP数据包的最大长度为65535字节),而应用层......
  • linux 中 yum makecache 、yum update、yum upgrade的作用
     001、yummakecache的作用是将服务器上的软件包信息缓存到本地,以提高搜索和安装软件的速度。 002、yumupdate:该命令用于更新系统中已安装的软件包到最新版本,但不会安装新的软件包或删除已安装的软件包。 003、yumupgrade:该命令也用于更新系统中已安装的软件包到最新......
  • TCP客户端及服务器端开发实践
    一、TCP客户端及服务器端开发实践1、TCP网络应用程序开发分类①TCP客户端应用程序开发②TCP服务器端应用程序开发客户端程序是指运行在用户设备上的程序,服务端程序是指运行在服务器设备上的程序,专门为客户端提供数据服务。那如何记忆呢?主动发起建立连接请求的是客户端......
  • 浅谈TCP(2):流量控制与拥塞控制
    上文浅谈TCP(1):状态机与重传机制介绍了TCP的状态机与重传机制。本文介绍流量控制(FlowControl,简称流控)与拥塞控制(CongestionControl)。TCP依此保障网络的QOS(QualityofService)。TCP的流量控制RTT算法根据前文对TCP超时重传机制的介绍,我们知道Timeout的设置对于重传非常重要:......