Ping是Linux系统常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着。它是通过发送ICMP ECHO_REQUEST数据包到网络主机,并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。
在前面的几篇文章中,我们解决了pod连接主机、pod连接外网、pod与相同节点或不同节点的pod连接、用clusterIP和nodeport的方式访问pod等几个问题,可以说,对于组织pod的网络的每一环都已经完成了。
所谓的“数据中心税”,指的是数据中心计算、存储、网络等基础资源虚拟化后带来的开销。
在搭建Hadoop集群时,要求网络使用以太网,最低要求使用千兆网络,推荐使用万兆网络,标准配置是数据网络配备双万兆网卡,管理网络配备双千兆网卡。使用双万兆网卡的好处有以下几点:
netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian 等等。 tc 是Linux 系统中的一个工具,全名为 traffic control(流量控制)。tc 可以用来控制 netem 的工作模式,也就是说,如果想使用 netem ,需要至少两个条件,一个是内核中的 netem 功能被包含,另一个是要有 tc 。
如果你对 Linux 流控感兴趣,如果你需要搭建高性能的 Linux 网关 , 本文将会使你受益颇多。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
使用概要: ethtool ethx //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等 ethtool –h //显示ethtool的命令帮助(help) ethtool –i ethX //查询ethX网口的相关信息 ethtool –d ethX //查询ethX网口注册性信息 ethtool –r ethX //重置ethX网口到自适应模式 ethtool –S ethX //查询ethX网口收发包统计 ethtool –s ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] //设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商
昨晚读了一篇Paper:https://penberg.org/parakernel-hotos19.pdf
随着IoT的兴起,越来越多的嵌入式设备内置了Wi-Fi模块,具备了网络接入能力。 在开发过程中,难免会遇到各种各样的网络问题,而抓包无疑是分析网络问题最直接、最有效的手段。因为通过抓包可以明确问题是处于发送端还是接收端,迅速缩小排查范围。 然而,许多嵌入式设备上运行的可能不是Linux系统,而是一些实时操作系统(RTOS),甚至根本就没有操作系统。而和设备通信的对端也不一定能运行tcpdump或者wireshark等抓包工具。这使得常见的点对点抓包手段失效。
传统的Linux内核网络协议栈由于更加注重通用性,其网络处理存在着固有的性能瓶颈,随着10G、25G、40G、100G甚至更高速率的网卡出现,这种性能瓶颈变得更加突出,传统内核网络协议栈已经难以满足高性能网络处理的要求。
双网卡绑定单个IP 地址 为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。 bond在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性。
最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,我在排查过程中基本都是通过使用 tcpdump 在出现问题的各个环节上进行抓包、分析在那个环节出现问题、针对性去排查解决问题,对症下药,最后终究能够解决问题。但是这种情况大多是因为服务本身的问题,如果是环境问题、操作系统、甚至硬件的问题,可能从服务本身出发不能解决问题,但是这篇文章另辟蹊径,从外部环境分析可能丢包的原因,看完之后,很受用,部分章节对原文有所修改,下面分享出来供更多人参考。
最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。
前天一个研发的兄弟问我,实现完成了ClickHouse数据备份的功能,然后把数据上传到HDFS之类的文件系统中,但是提交给测试,发现程序把网卡带宽跑满了,就向我咨询在Linux下是否有可以限制某个命令操作的带宽速率的,然后就推荐了trickle这个命令给研发同学,这里我也推荐给大家。
5G速率非常高,与之相连的Host设备要发挥5G的全部性能,必须正确的配置上位机,如CPU负载均衡,软硬件加速方案等。但是现阶段5G的部署不是很完善,实网测速最高到1Gbps左右,这时候可能高速率问题甚至无法发现。客户端部署仪表进行测速成本太高。因此有了Loopback测试的解决方案。
传统TCP/IP技术处理数据包需通过操作系统和其他软件层,导致数据在系统内存、处理器缓存和网络控制器缓存间频繁复制,增加了服务器CPU和内存的负担,特别是在网络带宽、处理器速度与内存带宽不匹配时,网络延迟会进一步加剧。RDMA技术通过将数据处理从CPU旁路并卸载到硬件上来实现低时延和高带宽特性。
最近,某团外卖被爆出大数据杀熟,所谓的大数据杀熟指的是平台利用户的数据,分析你是否是钱多的人,或者是否是不纠结价格的人,如果是,那么你买同样的物品会比普通用户贵一点,一般这种没有特地去对比价格是很难发现的,所以平台就利用了这点额外赚一些钱。说来很可笑,我们作为平台的资深用户,竟然被平台背后偷偷捞一笔。
在Linux系统中,绑定双网卡可以实现网络负载均衡和故障容错。当一张网卡出现故障时,系统可以自动切换到另一张网卡,保证网络的稳定性和可靠性。本文将介绍如何在Linux系统中进行双网卡绑定。
在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲、队列有关的参数。网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过来后,可能很快就忘记或混淆了它们的含义。本文尝试总结TCP队列缓冲相关的内核参数,从协议栈的角度梳理它们,希望可以更容易的理解和记忆。注意,本文内容均来源于参考文档,没有去读相关的内核源码做验证,不能保证内容严谨正确。作为Java程序员没读过内核源码是硬伤。
参考:http://loveyan.blog.51cto.com/829079/745164
网络数据传输:数据帧传输,由网卡读取并放入设备缓冲区ring buffer,当网络数据包到达的速率快于内核处理的速率时,ring buffer很快会被填满,新来的数据包将被丢弃。
Linux bonding 驱动提供了一个将多个物理网络端口捆绑为单个逻辑网络端口的方法,用于网络负载均衡、冗余和提升网络的性能 .我公司搭建的ftp服务需要高速下载,普通电脑网卡网口一般是千兆,配置一个万兆的网卡也需要支持万兆的网线,因此使用bond或Linux teaming来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。
作者 linxinsnow 应用场景 我们在进行安全性监控、测试的过程中,难免会遇到这样的问题:需要部署大量基于镜像流量的安全设备,如IPS,异常流量,数据库审计,流量分析等,可是交换机上可以做镜像流
Nginx 的机器,一般都是独立的机器,因此不建议采用默认 irqbalance 的自动绑定,而是要设置 smp_affinity、smp_affinity_list 的值来自动绑定。
利用 ethtool 可以根据需要更改以太网卡的参数,包括自动协商、速度、双工和局域网唤醒等参数。
像Samba、Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,网卡bond是通过把多个物理网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,具体的功能取决于采用的哪种模式。
工具:htop, net-tools, ping, iperf, UnixBench 等
eth0: negotiated 100baseTx-FD, link ok 100M
本节对应论文: Eliminating Receive Livelock in an Interrupt-driven Kernel
在Linux下, 通常使用netem或bridge来模拟网络不稳定情况。 在模拟过程中, 最好使用虚拟机。 如果是远程机器, 那么网络环境模拟需要两块网卡, 而桥模拟最好使用三块网卡。 就是需要附加一个网卡, 用作管理。
DPDK与SR-IOV两者目前主要用于提高IDC(数据中心)中的网络数据包的加速。但是在NFV(网络功能虚拟化)场景下DPDK与SR-IOV各自的使用场景是怎样的?以及各自的优缺点?
今天去现场帮一个客户排查备份网络速率问题。 用户期望是万兆的速率,但实际上目前只有千兆,因为目前上面运行着数据库,且数据量较大,千兆的备份网络速率不能满足用户备份数据库的时长要求。
在软件主界面右边的列表框中,点右键,根据菜单提示,即可进行新建报文/编辑已有报文的操作了。 报文编辑的界面如下:
网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels 2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。
之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:
在做MHA测试的时候,有一个重要的环节就是测试MHA Manager节点和Master节点的网络情况,如果产生了抖动,那么MHA本身提供了一个参数secondary_check来保证,但是如果你的部署环境中是一主一从的话,这个参数就不会起作用了,因为latest slave和oldest slave是同一个库,简单来说,连不上就是连不上了,至于切还是不切,这个还不好说。我们测试的场景下,有时候切,有时候不切。所以我们原本测试的MHA0.57版本就降级为了0.56,仔细测试发现,其实也存在这样的问题,综合再三
笔者有一个需要搭建弱网环境来复现某个网络问题的需求,因此开始在网络中寻找能够快速搭建弱网环境的方式。
国内宽带网速越来越快,运营商更是在今年初纷纷推进千兆宽带业务。为了让用户更好地了解网络状况,360宽带测速器发布新版,优化了宽带测速范围,可有效支持最高1000M的带宽测量。此外,宽带测速器能检测用户网卡状况,若发现无法支持千兆,还将及时做出提醒。
系统环境:CentOS release 6.9 (Final) Linux centos6 2.6.32-696.10.1.el6.x86_64
◆DPDK是什么 Intel® DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。具体体现在DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。 ◆DPDK技术介绍 一、主要特点 1、UIO(L
带宽(传输速率):数据传输的过程中,两个设备之间数据流动的物理速度称为传输速率,单位为bps(Bits Per Second,每秒比特数),传输速率不是指单位数据流动的速度,而是指单位时间内传输的数据量有多少。传输速率有被称之为带宽(Bandwidth),带宽越大网络传输能力就越强。
主要是通过将多个物理网卡绑定到一个逻辑网卡上,实现了本地网卡的冗余,带宽扩容以及负载均衡。
在介绍tc qdisc之前,先解释下tc是什么, tc(traffic control)是Linux内核中的一个网络流量控制工具,它可以用来控制网络流量的带宽、延迟、丢包等参数,从而实现网络流量的优化和管理。详细介绍可以参考Linux TC工具的官方文档和man手册。而qdisc (queueing disciplines), 是tc工具中的一部分,叫做队列规则,是一种可以定义Linux网络流量队列规则的一种机制,可以进行流量排队、调度以及限速等操作,达到对网络流量的精细控制和管理。如下是几个qdisc的例子:
wondershaper 实际上是一个 shell 脚本,它使用 tc 来定义流量调整命令,使用 QoS 来处理特定的网络接口。外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的;而传入流量通过丢包的方式来达到速率限制的目的。
随便测了青岛OJ的docker,好不容易跑完压力测试,一看Analysis给我整晕了。就这?
随着互联网, 人工智能等兴起, 跨机通信对带宽和时延都提出了更高的要求, RDMA技术也不断迭代演进, 如: RoCE(RDMA融合以太网)协议, 从RoCEv1 -> RoCEv2, 以及IB协议, Mellanox的RDMA网卡cx4, cx5, cx6/cx6DX, cx7等, 本文主要基于CX5和CX6DX对RoCE技术进行简介, 一文入门RDMA和RoCE有损及无损关键技术
将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于:
领取专属 10元无门槛券
手把手带您无忧上云