首页 > 系统相关 >Linux 网卡带宽

Linux 网卡带宽

时间:2022-12-20 14:35:12浏览次数:78  
标签:NIC 虚拟机 带宽 网卡 FD Linux enp129s0f0

在讲Linux网卡带宽前,先说一下网络带宽的概念。

1、网络带宽

1.1 概念

  网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。网络和高速公路类似,带宽越大,就类似高速公路的车道越多,其通行能力越强。网络带宽作为衡量网络特征的一个重要指标,日益受到人们的普遍关注。它不仅是政府或单位制订网络通信发展策略的重要依据,也是互联网用户和单位选择互联网接入服务商的主要因素之一。

  带宽是一个非常有用的概念,在网络通信中的地位十分重要。带宽的实际含义是在给定时间等条件下流过特定区域的最大数据位数。虽然它的概念有点抽象,但是可以用比喻来帮助理解带宽的含义。我们用城市的供水网来比喻,供水管道的直径可以衡量运水的能力,主水管直径可能有2m,而到家庭的可能只有2cm。在这个比喻中,水管的直径好比是带宽,水就好比是信息量。使用粗管子就意味着拥有更宽的带宽,也就是有更大的信息运送能力。

1.2 计算方法

带宽基本单位“比特”,简写为小写字母“b”,更大的单位是:Kb、Mb、Gb等;网速基本单位“字节”,简写为大写字母“B”,更大的单位有:KB、MB、GB等。

 1字节=8比特

带宽和网速的进率都是1024:

1Kb=1024b
1Mb=1024Kb
1Gb=1024Mb

1KB=1024B
1MB=1024KB
1GB=1024MB

带宽换算成网速除以8便可;网速换算成带宽乘以8便可。
在计算机网络、IDC机房中,其网络传输速率的单位用b/s(比特每秒)(或bit/s,有时也写作bps,即bit per second)表示。
在实际上网应用中,下载软件时常常看到诸如下载速度显示为176KB/s,103KB/s等宽带速率大小字样,因为ISP提供的线路带宽使用的单位是比特(bit),而一般下载软件显示的是字节(Byte),所以要通过换算,才能得实际值。
我们以1M宽带为例,按照换算公式换算一下:

1Mb/s=1024Kb/s=1024/8KB/s=128KB/s
理论上:2M(即2Mb/s)宽带理论速率是:256KB/s,实际速率大约为150~240KB/s;(其原因是受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗,信号衰减等多因素的影响而造成的)。4M(即4Mb/s)的宽带理论速率是:512KB/s,实际速率大约为200~440KB/s 。上行速率是指用户电脑向网络发送信息时的数据传输速率,下行速率是指网络向用户电脑发送信息时的传输速率。比如用FTP上传文件到网上去,影响上传速度的就是“上行速率”;而从网上下载文件,影响下载速度的就是“下行速率”。当然,在实际上传下载过程中,线路、设备(含计算机及其他设备)等的质量也会对速度造成或多或少的影响。

 2、网卡带宽

网络带宽是网卡每秒接收或发送数据的能力,单位为 Mbps。

 2.1 查看服务器指定网卡带宽大小

方式一:使用 ethtool命令查看服务器指定网卡带宽大小

ethtool命令用于查询和控制网络设备驱动程序和硬件设置,尤其是有线以太网设备,devname网卡的名称。
在第一种方法中,我们将使用ethtool实用程序来检查网络接口卡(NIC)速度。但是,如果您的Linux系统上尚未安装此实用程序,则必须首先使用以下命令安装它:

sudo apt install ethtool

在系统上安装此实用程序后,您需要检查要找出其速度的网络接口的接口名称。为此,您将必须运行下面给出的命令:

ip a

此命令将显示有关系统的所有网络接口的信息, 如下所示,我们选择了名为enp129s0f0的网络接口。

ubuntu@ubun:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
.......
2: enp129s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:24:43:ba brd ff:ff:ff:ff:ff:ff
    inet 10.20.30.173/24 brd 10.20.30.255 scope global enp129s0f0
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fe24:43ba/64 scope link 
       valid_lft forever preferred_lft forever
3: enp129s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
.......

现在,要检查指定NIC的速度,我们将执行如下所示的命令:

ubuntu@ubun:~$ ethtool enp129s0f0
Settings for enp129s0f0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: on (auto)
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes
ubuntu@ubun:~$ 

其中 Speed: 1000Mb/s 就是这个网卡的带宽。但是,您可以看到上述命令的输出有点太长了。因此,如果您希望将此输出限制为仅 NIC 速度,则必须按如下所示的方式对其进行修改:

ubuntu@ubun:~$ ethtool enp129s0f0 | grep -i speed
Cannot get wake-on-lan settings: Operation not permitted
	Speed: 1000Mb/s

注意:换算成网速为1000Mb/s = 1000/8 MB/s = 125 MB/s。 

方式二:使用dmesg命令查看服务器指定网卡带宽大小

Dmesg用于显示内核环形缓冲区的内容,内核在其中存储各种消息。
在此方法中,我们将使用Linux中内置的dmesg命令来检查NIC速度,如下所示:

ubuntu@ubun:~$ dmesg | grep enp129s0f0 | grep up
[    7.277894] igb 0000:81:00.0 enp129s0f0: igb: enp129s0f0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
ubuntu@ubun:~$ 

方式三:使用mii-tool命令查看服务器指定网卡带宽大小

mii-tool命令用于查看、管理介质的网络接口的状态,首先需要在系统上安装此软件包:

sudo apt install net-tools

运行以下命令来检查 NIC 速度(1000baseT-FD):

ubuntu@ubun:~$ sudo mii-tool -v enp129s0f0
enp129s0f0: negotiated 1000baseT-FD flow-control, link ok
  product info: vendor 00:55:00, model 59 rev 1
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
ubuntu@ubun:~$ 

3、虚拟机的网卡带宽  

通过VMware ESXi等虚拟化软件创建的虚拟机,查看虚拟机网卡带宽为10000Mbps。

[root@pansoft-manage-uat-106 ~]# ethtool ens192 |grep Speed
	Speed: 10000Mb/s

在ESXi管理界面上可以看到其所属裸金属的物理网卡带宽为1000Mbps。

 

这是因为创建虚拟机选择的虚拟网络适配器为VMXNET3,模拟的是万兆网卡,这种虚拟网络适配器可以没有物理网卡对应(普通裸金属一般为千兆网卡),也就是不需要借助底层的硬件网卡,并且通过对虚拟机中的性能进行优化,使得同一裸金属上的虚拟机之间的网络交换不受底层网卡的限制。

详细内容参考:VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!

原理:同一台裸金属上创建的虚拟机的通讯走的是虚拟交换机,不经过NIC(物理网卡),其带宽是虚拟网卡进行管理的,而虚拟机访问外网,走NIC,其带宽受到NIC的限制。

 

详细内容参考:网络虚拟化和虚拟网络

总结:同一台裸金属上创建的虚拟机的通讯走的是虚拟交换机,不经过NIC,因此我们可以把关联性比较大的组件部署在同一台裸金属上创建的不同的虚拟机上,比如redis集群;虚拟机访问外部网络(访问非当前虚拟机所在裸金属上的其他虚拟机的网络)时, 走NIC,其带宽受到NIC的限制。

4、判断网络性能瓶颈

确定数据流向,即确定网络请求从客户端发出后,经过了哪些环节,最终到达服务端。响应数据经过哪些环节,又返回到客户端。并且每个环节中的网络上限是多少,最终我们整个网络环路的流量上限,就取决于环路中最低的那个上限值(木桶原理)。

举例说明,如下图所示:

网络请求数据首先是从客户端的网卡发出(千兆网卡),然后网络带宽也会有限制(100Mb/s),可能还会经过一些网络设备,如路由器、交换机、防火墙、代理等,这些设备也都有网络上限,假如都是10000Mb/s,最后到达服务端的网卡(千兆网卡)。所以从上面的网络架构来看,整体链路最高支持100Mb/s的数据流量,网速是100/8=12.5MB/s。

如果在局域网内,几乎就不用考虑网络带宽和路由器的问题了,一般局域网内防火墙都是万兆网卡,所以局域网内服务器网卡的上限就是整个链路的网络上限。

参考:如何在 Linux 中检查我的网卡速度?

参考:两招轻松判断网络性能瓶颈,一般人我不告诉他!——Testfan打卡学测开1114

标签:NIC,虚拟机,带宽,网卡,FD,Linux,enp129s0f0
From: https://www.cnblogs.com/zhangmingcheng/p/16987264.html

相关文章

  • Linux四剑客之awk
    awk,可以说是一门语言了,单行脚本;取行;取列;混合取行与列;判断与循环;数组;格式:类似sedawk选项'条件{动作}'文件条件:找谁;动作:干啥取出/etc/passwd第1列第3列和最后一列,注$0是......
  • 如何在 Linux 下使用 TC 优雅的实现网络限流
    1.Linux下的流量控制原理通过对包的排队,我们可以控制数据包的发送方式。这种控制,称之为数据整形,shapethedata,包括对数据的以下操作:增加延时丢包重新排列重复、损坏速率......
  • linux安装stable diffusion2.0完整教程-还不会安装sd2.0?一篇文章教会你AI绘画
    原文地址:https://chenhx.blog.csdn.net/article/details/128383113以下教程出自飞链云AI技术人员,欢迎使用目前国内顶尖的AI绘画工具,微信小程序搜索:【飞链云版图】注意:请......
  • Linux下安装python+appium+android(附带各种错误解决办法)
    文章目录​​安装AndroidSDK​​​​安装nodejs、NPM、cnpm​​​​安装Appium​​​​安装Python和基础库​​​​设置WIFI连接及调试​​​​引用​​​​安装错误解决​......
  • Linux特殊权限 SUID、SGID、Sticky
    转载自:https://www.jianshu.com/p/5c1db5821a14在理解特殊权限之前,需要先具备几个关于安全上下文的认知:前提:进程有属主和属组;文件有属主和属组;任何一个可执行程序文......
  • linux下安装pymssql
    各版本的下载地址:​​https://pypi.python.org/pypi/pymssql/​​Windows可以下载installer文件,直接是编译好的,可以直接安装Linux下需要安装几个基础类库:Cython:pipinstall......
  • Perf -- Linux下的系统性能调优工具
    Perf简介Perf是用来进行软件性能分析的工具。通过它,应用程序可以利用PMU,tracepoint和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题(pert......
  • linux 配置yum源
    1. 切换到yum源配置目录cd/etc/yum.repos.d/2.备份所有配置文件mkdirbackmv*./back3.新建一个xxx.repo文件touchCentos-Base.repo4.编辑文件内......
  • 让Linux任务在后台可靠运行的几种方法
     我们经常会碰到这样的问题,用telnet/ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终......
  • linux 中如何查找在过去一段时间内修改过的文件
     001、查找在过去五分钟内修改过的文件find./-mmin-5 002、查找在过去10分钟内修改过的文件find./-mmin-10 003、查找在过去一天内修改过的文件......