最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,我在排查过程中基本都是通过使用 tcpdump 在出现问题的各个环节上进行抓包、分析在那个环节出现问题、针对性去排查解决问题,对症下药,最后终究能够解决问题。但是这种情况大多是因为服务本身的问题,如果是环境问题、操作系统、甚至硬件的问题,可能从服务本身出发不能解决问题,但是这篇文章另辟蹊径,从外部环境分析可能丢包的原因,看完之后,很受用,部分章节对原文有所修改,下面分享出来供更多人参考。
最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。
笔者最近在对一个公网传输方案做测试时,需要模拟一些公网中遇到的极端情况(延迟、丢包、重复、损坏和乱序等)。惊喜地发现,Linux原生已经集成了TC和netem这对组合,只需要几个命令即可快速地实现上述功能。
有很多新手朋友在买来服务器之后不知道自己的服务器到底好不好,有时候快有时候又慢得令人发指;或者刚买来的时候速度不错,用久了却越用越卡;又或者总是间歇性的抽风。
Ping是Linux系统常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着。它是通过发送ICMP ECHO_REQUEST数据包到网络主机,并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。
运维过程中,最复杂的问题,莫过于网络的问题,而网络问题最烦的就是无法复现,这篇介绍一个强大的网络模拟工具Netem
本期分享一个比较常见的⽹络问题--丢包。例如我们去ping⼀个⽹站,如果能ping通,且⽹站返回信息全⾯,则说明与⽹站服务器的通信是畅通的,如果ping不通,或者⽹站返回的信息不全等,则很可能是数据被丢包了,类似情况想必⼤家都不陌⽣。针对⽹络丢包,本⽂提供⼀些常见的丢包故障定位⽅法,希望能够帮助⼤家对⽹络丢包有更多的认识,遇到丢包莫要慌,且跟着⼀起来涨姿(知)势(识)···
对于云上的用户来说,业务日志里面报超时问题处理起来往往比价棘手,因为1) 问题点可能在云基础设施层,也有可能在业务软件层,需要排查的范围非常广;2) 这类问题往往是不可复现问题,抓到现场比较难。在本文里就分析下如何来分辨和排查这类问题的根本原因。
开始我怀疑PHP有问题,但是通过查询Nginx的access日志,发现里面记录的PHP响应时间「$upstream_response_time」非常小,此外还通过Strace命令仔细核对了是否存在耗时的操作,结果一无所获,所以基本排除了PHP的嫌疑。
udp 数据包的理论长度是多少,合适的 udp 数据包应该是多少呢?
常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr。mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。traceroute默认使用UDP数据包探测,而mtr默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况。
在windows上安装Linux虚拟机 windows 192.168.43.100 路由 43.254 CentOS5.4 linux 192.168.43.101 路由 43.254 这时 linux windows 上网都是正常的。 启动linux的路有功能 sysctl -w net.ipv4.ip_forward=1 也可以设置到配置文件中,重启生效 vi /etc/sysctl.conf net.ipv4.ip_forward = 1 查看方式: sysctl net.i
最近花了些时间在学习TCP/IP协议上,首要原因是由于本人长期以来对TCP/IP的认识就只限于三次握手四次分手上,所以希望深入了解一下。再者,TCP/IP和Linux系统层级的很多设计都可以用于中间件系统架构上,比如说TCP 拥塞控制算法也可以用在以响应时间来限流的中间件上。更深一层,像TCP/IP协议这种基础知识和原理性的技术,都是经过长时间的考验的,都是前人智慧的结晶,可以给大家很多启示和帮助。
最近花了些时间在学习TCP/IP协议上,首要原因是由于本人长期以来对TCP/IP的认识就只限于三次握手四次分手上,所以希望深入了解一下。再者,TCP/IP和Linux系统层级的很多设计都可以用于中间件系统架构上,比如说TCP 拥塞控制算法也可以用于以响应时间来限流的中间件。更深一层,像TCP/IP协议这种基础知识和原理性的技术,都是经过长时间的考验的,都是前人智慧的结晶,可以给大家很多启示和帮助。
笔者有一个需要搭建弱网环境来复现某个网络问题的需求,因此开始在网络中寻找能够快速搭建弱网环境的方式。
netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian等等。
上面直接将所有任务加到列表中,然后一次性,全部异步执行。那么同一时刻,最多有多少任务执行呢?
如果你有订阅一些科技新闻,应该会有看过内核在4.9当中加入了一个新的算法,来解决在有一定的丢包率的情况下的带宽稳定的问题,这个是谷歌为我们带来的干货,新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT),谷歌一向的做法是,先上生产,然后发论文,然后有可能开源,所以这个已经合并到了内核4.9分支当中,算法带来的改变在出的测试报告当中有很详细的数据展示,这个看多了可能反而不知道到底会有什么明显改变,特别是对于我们自己的场景
在 Linux 系统下,丢包是一个较为常见的问题。由于丢包导致的网络问题可能会给用户带来不好的体验,因此解决 Linux 网络丢包问题是必不可少的。本文将介绍如何在 Linux 系统下进行网络丢包排查。
在后端接口性能指标中一类重要的指标就是接口耗时。具体包括平均响应时间 TP90、TP99 耗时值等。这些值越低越好,一般来说是几毫秒,或者是几十毫秒。如果响应时间一旦过长,比如超过了 1 秒,在用户侧就能感觉到非常明显的卡顿。如果长此以往,用户可能就直接用脚投票,卸载我们的 App 了。
之前我在「实战!我用“大白鲨”让你看见 TCP」这篇文章里做了 TCP 三次握手的三个实验:
作者:engleliu,腾讯 PCG 开发工程师 本文主要介绍 TCP 拥塞控制算法,内容多来自网上各个大佬的博客及《TCP/IP 详解》一书,在此基础上进行梳理总结,与大家分享。因水平有限,内容多有不足之处, 敬请谅解。 一、TCP 首部格式 在了解 TCP 的拥塞控制之前,先来看看 TCP 的首部格式和一些基本概念。 TCP 头部标准长度是 20 字节。包含源端口、目的端口、序列号、确认号、数据偏移、保留位、控制位、窗口大小、校验和、紧急指针、选项等。 TCP 首部格式 1.1 数据偏移(D
大家好,我是来自哔哩哔哩的郑龙,2012年至2017年我在广播电视行业从事工作,2017年我转型至互联网行业并加入了哔哩哔哩的视频云团队。在视频云团队的三年里,主要参与了哔哩哔哩的亿秒级日吞吐视频转码系统的开发与自营视频窄带高清技术的探索,以上两项服务都已上线并长期运行。
BBR对TCP性能的提升是巨大的,它能更有效的使用当下网络环境,Youtube应用后在吞吐量上有平均4%提升(对于日本这样的网络环境有14%以上的提升):
TCP协议仅定义框架,也就是发送端和接收端需要遵循的“规则”。TCP协议的实现经过多年的改进,有了多个不同的版本。比较重要的有Tahoe、Reno、NewReno、SACK、Vegas等,有些已经成为了影响广泛的RFC文档,有些则成为了Unix/Linux操作系统的标准选项。
常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr。mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。
快直播传输层SDK自推出来,凭借其便捷接入方式和优异性能,得到快直播客户的肯定。经过2年多的技术积累、迭代、调优和打磨,开播成功率、首帧耗时、卡顿率等指标提升到了一个新的台阶,指标业界领先。越来越多的客户通过传输层SDK接入原有播放器,实现了直播业务的低延时升级。近期快直播传输层SDK2.0版本发布,推出了内部播控模式,进一步降低了接入门槛,增强低延时播放性能。本文延续《基于ijkplayer的快直播传输层SDK应用实践》,详细介绍2.0版本支持的SDK内部播控模式,及其框架和接入方式。
之前记录过处理因为 LVS 网卡流量负载过高导致软中断发生丢包的问题,RPS 和 RFS 网卡多队列性能调优实践[1],对一般人来说压力不大的情况下其实碰见的概率并不高。这次想分享的话题是比较常见服务器网卡丢包现象排查思路,如果你是想了解点对点的丢包解决思路涉及面可能就比较广,不妨先参考之前的文章如何使用 MTR 诊断网络问题[2],对于 Linux 常用的网卡丢包分析工具自然是 ethtool。
在《深入解析常见三次握手异常》 这一文中,我们讨论到如果发生连接队列溢出而丢包的话,会导致连接耗时会上涨很多。那如何判断一台服务器当前是否有半/全连接队列溢出丢包发生呢?
而且,这个超时时间在不同的网络的情况下,根本没有办法设置一个死的值。只能动态地设置。 为了动态地设置,TCP引入了RTT——Round Trip Time,也就是一个数据包从发出去到回来的时间。这样发送端就大约知道需要多少的时间,从而可以方便地设置Timeout——RTO(Retransmission TimeOut),以让我们的重传机制更高效。 听起来似乎很简单,好像就是在发送端发包时记下t0,然后接收端再把这个ack回来时再记一个t1,于是RTT = t1 – t0。没那么简单,这只是一个采样,不能代表普遍情况。
今天线上业务出现了大量语音合成问题,本以为是服务出问题,但是经过排查发现服务一切正常就是合成的特别慢,在TTS语音合成服务那边也没有大量的任务堆积,这边也一直再发送需要合成的数据过去,这种情况只能说明在传输需要合成的语句的时候出现了问题,这时候第一个排查的就是网络问题,可能是网络大量丢包造成的数据传输问题,于是开始使用ping命令查看,发现确实有丢包,但是通过ping又没有办法发现是哪个地方丢包,这个时候聪明的你肯定想到我们用traceroute命令来检测数据包传输到哪个地方不传了,但是我发现这个并不能说明什么,因为丢包不是完全丢,而是丢一部分,这个时候想有没有一个命令是ping和traceroute的合体,于是google了一下,发现mtr刚好满足我的需求,于是使用记录并分享.
Mtr是一个将“traceroute”和“ping”程序功能结合在一起的一个网络诊断工具。
作者 | 苏欣 来源 | https://cloud.tencent.com/developer/article/1491610 常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr。 mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。 traceroute 默
MTR是一款非常好用的网络分析工具。相信好多人都用过,因为个人工作中需要经常用到分析网络状况,加之它非常简单实用,今天民工哥给大家介绍并推荐一下。
基于「丢包反馈」的协议是一种 被动式 的拥塞控制机制,其依据网络中的 丢包事件 来做网络拥塞判断。即便网络中的负载很高时,只要没有产生拥塞丢包,协议就不会主动降低自己的发送速度。
图片下载走的 k8s ingress,这个 ingress 路径对应后端 service 是一个代理静态图片文件的 nginx deployment,这个 deployment 只有一个副本,静态文件存储在 nfs 上,nginx 通过挂载 nfs 来读取静态文件来提供图片下载服务,所以调用链是:client --> k8s ingress --> nginx --> nfs。
本文主要探讨了在网络游戏领域,从客户端到服务器的网络延迟对于玩家游戏体验的影响。针对MOBA、FPS、MMORPG等多种类型的游戏,分析了在弱网环境下,TCP协议和UDP协议的加速方案。最后,文章介绍了腾讯云智营网优产品,提供了免费试用入口。
在做MHA测试的时候,有一个重要的环节就是测试MHA Manager节点和Master节点的网络情况,如果产生了抖动,那么MHA本身提供了一个参数secondary_check来保证,但是如果你的部署环境中是一主一从的话,这个参数就不会起作用了,因为latest slave和oldest slave是同一个库,简单来说,连不上就是连不上了,至于切还是不切,这个还不好说。我们测试的场景下,有时候切,有时候不切。所以我们原本测试的MHA0.57版本就降级为了0.56,仔细测试发现,其实也存在这样的问题,综合再三
Redis 服务端的总体请求量从年初最开始日访问量百亿次级别上涨到高峰时段的万亿次级别,给运维和架构团队都带来了极大的挑战。
这是TCP/IP协议栈系列的第二篇文章,之前的一篇理解TCP/IP协议栈之HTTP2.0感兴趣可以看下,今天一起来学习下一个热点问题。
20个线程连续压测一分钟后开始交替出现两台目标机器已经宕机(单线程访问没什么问题),出现日志如下所示:
最近就有个读者加了我的绿皮聊天软件,女生,头像挺好看的,就在我以为她要我拉她进群发成人专升本广告的时候。
这个参数通常需要在高负载的访问服务器上增加。比如繁忙的网络(或网关/防火墙 Linux 服务器),再比如集群规模大,node 和 pod 数量超多,往往需要增加内核的内部 ARP 缓存大小。
最近很多小伙伴都反映腾讯云轻量服务器测速满满的,即使是晚高峰也能在Speedtest跑到多少多少balabala......但是加载Youtube视频却是一卡一卡的断流严重,为什么呢?
声明:此文来自于MOS(Doc ID 1674865.1),整理在此以便于大家阅读学习。
领取专属 10元无门槛券
手把手带您无忧上云