阿里妹导读:什么是经验?就是遇到问题,解决问题,总结方法。遇到的问题多了,解决的办法多了,经验自然就积累出来了。今天的文章是阿里技术专家蛰剑在工作中遇到的一个问题引发的对TCP性能和发送接收Buffer关系的系列思考(问题:应用通过专线从公司访问阿里云上的服务,专线100M,时延20ms,一个SQL查询了22M数据出现10倍+的信息延迟,不正常。)希望,你也能从中得到启发。
问题导读 1.网络作为Yarn的资源,有什么好处? 2.Yarn是否只支持调度和强制执行“传出流量”? 3.Yarn是否支持入口流量? 4.DistributedShell是否可以让用户指定网络带宽
Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。 接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择:
在公有云使用过程中,对于CVM (Cloud Virtual Machine)的网络性能测试需求比较普遍,例如:新上到腾讯云平台,或者有新的产品计划上线,这些情况下都希望对CVM实际网络情况做一个摸底。虽然官方文档[1]也有关于网络带宽测试的说明,但是仅仅给出了最基本的方法,对于可能遇到的问题并没有完整的指导。而为了测试到CVM标称的网络性能规格,需要将性能优化到极致,其中的细节尤其重要。腾讯云现网客户也因此有不少遇到此类问题提工单咨询,为此耗费了大量的时间。本文希望通过将此过程中遇到的问题进行系统性的说明,从而提高测试效率,为客户节省时间。
导语 泛洪在数据中心网络中是一种常见现象,很多时候泛洪转发都是良性的,对网络无影响。以太网标准对网络设备的要求也是允许流量有短时间的泛洪,尤其是框式设备是不可避免的,只要在极短的时间内就结束泛洪,都是一种正常的网络现象。 搞网络技术的人对泛洪这个概念应该不陌生,本质上是网络设备将从某个接口上收到的数据从除本接口之外的设备所有接口发送出去,之所以发生这样的情况是因为数据报文在网络设备转发表中无法找到与数据包目标地址一致的表项,此时就将数据包从所有接口发送出去,以期找到目标主机来接收数据包,可以理解为二层转发行
通过对EIGRP实验拓扑,路由以及汇聚相关实验的的练习,掌握EIGRP建立拓扑信息的方式,度量计算方法,如何调整度量值,非等价负载均衡,以及EIGRP末节路由器。
最近,我想使用至少 3 个工具通过命令行测试网络吞吐量。对于我的一生,我不记得 iperf。无法记住以前使用过的命令行工具令人沮丧,而且我们都可以与之相关。所以我为自己创建了一个网络工具的首选列表。然后,我想,为什么不把这个列表变成一篇博文呢?所以我又花了一两个小时来编译这份正在进行的 Linux 网络命令和脚本列表。我主要期待建议,因为我知道总是缺少某些东西或有新的脚本可以尝试。
我们开发的软件服务需要在服务器上运行,所以服务器性能代表了软件的性能上限,因此服务器性能调优是个十分重要的环节,然而大部分同学对服务器性能调优关注的较少,今天从3个部分对服务器性能调优进行介绍,分别是:服务器配置选择,服务器负载分析,服务器内核参数调优。
nload是一个命令行工具,让用户可以分开来监控入站流量和出站流量。它还可以绘制图表以显示入站流量和出站流量,视图比例可以调整。用起来很简单,不支持许多选项。
有很多适用于Linux系统的开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况. netstat用来查看接口统计报告,还有top监控系统当前运行进程.但是如果你想要找一个能够按进程实时统计网络带宽利用率的工具,那么NetHogs值得一看。
客户端在建立连接时会首先发送SYN报文,但是假设此时你没有收到服务端SYN+ACK的响应报文,客户端此时会重传SYN报文,此时你需要根据实际情况来调整SYN报文的重传次数,以便客户端能够及时得到反馈。
此前的文章中,我们介绍了 tcp 协议的基本概念和连接的建立与终止 最后,我们介绍了“经受时延的确认”,这是一种将 ACK 包与下一条数据包合并发送的策略,这样可以尽量减少发往网络的报文,以提高传输的效率,节省网络资源。 除此之外,TCP 还有很多其他算法和策略用来优化网络的使用。
iperf命令是一个网络性能测试工具,可以测试TCP和UDP带宽质量。同时也可以通过UDP测试报告网丢包率或者发包性能,是一个非常实用的工具
图 under the strange horizon by joeyjazz
本期分享一个比较常见的⽹络问题--丢包。例如我们去ping⼀个⽹站,如果能ping通,且⽹站返回信息全⾯,则说明与⽹站服务器的通信是畅通的,如果ping不通,或者⽹站返回的信息不全等,则很可能是数据被丢包了,类似情况想必⼤家都不陌⽣。针对⽹络丢包,本⽂提供⼀些常见的丢包故障定位⽅法,希望能够帮助⼤家对⽹络丢包有更多的认识,遇到丢包莫要慌,且跟着⼀起来涨姿(知)势(识)···
本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。
本文介绍了UDP协议和TCP协议的区别以及它们在网络编程中的使用场景。TCP协议是面向连接的、可靠的、基于字节流的传输层通信协议,而UDP协议是面向无连接的、不可靠的、基于数据报的传输层协议。TCP协议适用于对可靠性要求高的场景,而UDP协议适用于对实时性要求高、可靠性要求不高的场景。在具体应用中,TCP协议常用于Web服务器和客户端、文件传输、网络电话等,而UDP协议常用于实时音视频传输、在线游戏等。
网络嗅探器在日常工作中经常使用,通常情况下,我们叫做“抓包工具”,不管是软件开发、还是网络工程师,抓包解决一些问题已经称为最正常不过的操作。
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦:
之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:
目前Linux系统有很多开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况. netstat用来查看接口统计报告,还有top监控系统当前运行进程.但是如果你想要找一个能够按进程实时统计网络带宽利用率的工具,那么NetHogs值得一看。
本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。 一些命令可以显示单个进程所使用的带宽。这样一来,用户很容易发现过度使用网络带宽的某个进程。 这些工具使用不同的机制来制作流量报告。nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载。 下面是按功能划分的命令名称。 监控总体带宽使用―
在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲、队列有关的参数。网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过来后,可能很快就忘记或混淆了它们的含义。本文尝试总结TCP队列缓冲相关的内核参数,从协议栈的角度梳理它们,希望可以更容易的理解和记忆。注意,本文内容均来源于参考文档,没有去读相关的内核源码做验证,不能保证内容严谨正确。作为Java程序员没读过内核源码是硬伤。
本篇是来自SMPTE 2019的演讲,演讲者是来自Net Insight的Doug Shelton和Mikael Wånggren,演讲题目是“Live Cloud Ingest Using an Open Approach to RIST, SRT andRetransmission Protocols”。
客户在做CVM的基准线的性能压测,当前反馈使用iperf在做网络PPS基准线压测时,云服务器压测出来的数据,远远超过官网承诺的值,质疑腾讯云云服务器没有做网络限制;
网上关于sysctl.conf的优化方案有各种版本,大多都是抄来抄去的,让新人看了很迷茫。为解决此问题,经过两天的整理,查了N多资料,将大家常用的总结如下,很多默认的不需要修改的暂未涉及,今后将逐步把所有的项目都有个翻译、讲解、修改建议,如有修改,将以此文为准,其他地方的内容,本人不负责更新。因此转载请注明链接地址:http://www.bsdlover.cn/security/2007/1216/article_8.html如果您有补充或修订意见,请于本文后评论或邮件联系cujxtm@gmail.com,万分感谢! ################### 所有rfc相关的选项都是默认启用的,因此网上的那些还自己写rfc支持的都可以扔掉了:) ############################### net.inet.ip.sourceroute=0 net.inet.ip.accept_sourceroute=0 ############################# 通过源路由,攻击者可以尝试到达内部IP地址 --包括RFC1918中的地址,所以 不接受源路由信息包可以防止你的内部网络被探测。 ################################# net.inet.tcp.drop_synfin=1 ################################### 安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用,可以阻止某些OS探测。 ################################## kern.maxvnodes=8446 #################http://www.bsdlover.cn######### vnode 是对文件或目录的一种内部表达。 因此, 增加可以被操作系统利用的 vnode 数量将降低磁盘的 I/O。 一般而言, 这是由操作系统自行完成的,也不需要加以修改。但在某些时候磁盘 I/O 会成为瓶颈, 而系统的 vnode 不足, 则这一配置应被增加。此时需要考虑是非活跃和空闲内存的数量。 要查看当前在用的 vnode 数量: # sysctl vfs.numvnodes vfs.numvnodes: 91349 要查看最大可用的 vnode 数量: # sysctl kern.maxvnodes kern.maxvnodes: 100000 如果当前的 vnode 用量接近最大值,则将 kern.maxvnodes 值增大 1,000 可能是个好主意。 您应继续查看 vfs.numvnodes 的数值, 如果它再次攀升到接近最大值的程度, 仍需继续提高 kern.maxvnodes。 在 top(1) 中显示的内存用量应有显著变化, 更多内存会处于活跃 (active) 状态。 #################################### kern.maxproc: 964 #################http://www.bsdlover.cn######### Maximum number of processes #################################### kern.maxprocperuid: 867 #################http://www.bsdlover.cn######### Maximum processes allowed per userid #################################### 因为我的maxusers设置的是256,20+16*maxusers=4116。 maxprocperuid至少要比maxproc少1,因为init(8) 这个系统程序绝对要保持在运作状态。 我给它设置的2068。 kern.maxfiles: 1928 #################http://www.bsdlover.cn######### 系统中支持最多同时开启的文件数量,如果你在运行数据库或大的很吃描述符的进程,那么应该设置在20000以上, 比如kde这样的桌面环境,它同时要用的文件非常多。 一般推荐设置为32768或者65536。 #################################### kern.argmax: 262144 #################http://www.bsdlover.cn######### maximum number of bytes (or characters) in an argument list. 命令行下最多支持的参数,比如你在用find命令来批量删除一些文件的时候 fi
在客户业务应用中,采用TCP协议的占据了绝大多数,这方面也有丰富的资料可以参考;但是在UDP协议方面,由于应用较少,相关的资料也很少.TCP的性能调优需要调整一系列参数,而决定UDP通信性能的因素于此截然不同.本文将通过实验给读者做验证.
▪ 1. SRIOV介绍 ▪ 2. 环境说明 ▪ 3. 开启SRIOV ▪ 4. 生成VF ▪ 5. VF直通 ▪ 6. 开启irqbalance ▪ 7. VM迁移 ▪ 8. 带宽限速 ▪ 9. 安全 ▪ 10. 其他使用限制 ▪ 11. 性能测试 ▪ 12. windows虚拟机使用VF ▪ 13. 运维命令 ▪ 14. 宿主屏蔽VF驱动 ▪ 附. 包转发率测试方法 ▪ 附. 参考文档
有监控的情况下,首先去看看监控大盘,看看有没有异常报警,如果初期还没有监控的情况我会按照下面步骤去看看系统层面有没有异常
很多公司都使用界面化的监控工具,很酷炫,这说明,监控这块我们几乎都会接触到,大家是有想法的,其次在不同的目的下,选择不同的工具有着不同的目的,今天这篇文章我就给大家介绍酷炫的图形化监控小军刀netdata的使用。
本文带大家一起通过实操方式来学习腾讯云私有网络管理,通过弹性公网IP、NAT网关访问Internet,通过安全组、ACL进行网络访问控制。对等连接、云联网实现跨地域网络访问等网络互联实操请参阅:玩转腾讯云-网络互联实操。
所有centos 7的组件源码都在https://git.centos.org/上,另外所有的SRPM都在编译二进制包时自动生成,SRPM包存放在vault.centos.com对应的目录中。和二进制RPMs相比,源码RPMs消耗的带宽要小的多,所以我们没有把源码包放在主镜像网络里。如果用户想镜像这些内容,可以使用yum-utils包中提供的reposync功能,所有的SRPM包和对应的二进制源码包使用相同的密钥签名。
本文翻译自 KubeCon+CloudNativeCon Europe 2022 的一篇分享:Better Bandwidth Management with eBPF。
TC(traffic control)是Linux中的流量控制工具。它是通过控制netem来实现的网络场景模拟。该工具是直接对物理网卡生效的,如果是逻辑网卡,则该控制无效。如果是用的虚拟机,可视虚拟网卡为物理网卡。
这是TCP/IP协议栈系列的第三篇文章,之前的一篇面试热点|理解TCP/IP传输层拥塞控制算法讲述了传统的拥塞控制算法基本原理,今天一起来学习下最新Linux内核中增加的拥塞控制算法:TCP BBR算法。
RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理能力。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。
在Linux下怎么看网络流量? 在Windows下,我们可以很方便的通过360来查看网络流量,知道哪个进程占用的网络带宽比较多。那在Linux下怎么看流量呢,对于Web服务器来说这是很重要的。 下面这边博客很仔细的介绍了Linux下看流量的方法: Linux 各种查看网卡流量的方法 http://jasonyong.blog.51cto.com/47753/174197 我使用了其中一些,还找了网上其他一些资料,总结如下: 1. 使用 iptraf iptraf是一个实时查看网络流量的文本屏幕界面工具。
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
而且,这个超时时间在不同的网络的情况下,根本没有办法设置一个死的值。只能动态地设置。 为了动态地设置,TCP引入了RTT——Round Trip Time,也就是一个数据包从发出去到回来的时间。这样发送端就大约知道需要多少的时间,从而可以方便地设置Timeout——RTO(Retransmission TimeOut),以让我们的重传机制更高效。 听起来似乎很简单,好像就是在发送端发包时记下t0,然后接收端再把这个ack回来时再记一个t1,于是RTT = t1 – t0。没那么简单,这只是一个采样,不能代表普遍情况。
CLB健康检查是指负载均衡实例定期向后端服务器发送 Ping、尝试连接或发送请求来测试后端服务器运行的状况。当后端服务器实例被判定为不健康时,负载均衡实例将不会把请求转发到该实例上。健康检查会对所有后端服务器(不管是判定为健康的还是不健康的)进行,当不健康实例恢复正常状态时,负载均衡实例将恢复把新的请求转发给它。
有很多适用于Linux系统的开源网络监视工具。比如说,你可以用命令iftop来检查带宽使用情况。netstat用来查看接口统计报告,还有top监控系统当前运行进程。但是如果你想要找一个能够按进程实时统计网络带宽利用率的工具,那么NetHogs值得一看。
一、概述 1.1 什么是Traceroute 当遇到网络问题,通常会用Traceroute去排查,但Traceroute是什么? 根据百度百科定义,Traceroute是一种电脑网络工具,它可显示数据包在IP网络经过的路由器的IP地址。 Traceroute有三大特点: 跨平台。Traceroute工具存在与各个操作系统平台,包括主流系统MAC OS、Windows、Linux、Android、IOS等; 使用方便。只要在Traceroute后输入IP或域名即可; 信息全面。Traceroute能够显示跳数
Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。
TCP协议中可选的MSS(Maximum Segment Size,最大报文长度))参数,一般使用MTU代替,值为1460。这个值是怎么来的呢? Maximum Transmission Unit,缩写MTU,中文名是:最大传输单元。 假设MTU值和IP数据包大小一致,一个IP数据包的大小是:65535,那么加上以太网帧头和为,一个以太网帧的大小就是:65535 + 14 + 4 = 65553,看起来似乎很完美,发送方也不需要拆包,接收方也不需要重组。 那么假设我们现在的带宽是:100Mbps,因为以太网帧是传输中的最小可识别单元,再往下就是0101所对应的光信号了,所以我们的一条带宽同时只能发送一个以太网帧。如果同时发送多个,那么对端就无法重组成一个以太网帧了,在100Mbps的带宽中(假设中间没有损耗),我们计算一下发送这一帧需要的时间:
BIG TCP 并不是一个适应于大部分场景的通用方案,而是针对数据密集型应用的优化,在这些场景下能显著提升网络性能。
领取专属 10元无门槛券
手把手带您无忧上云