服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-27 简米科技 3,946 字 9 分钟阅读

如何查看虚拟机当前实时带宽使用情况?虚拟机网卡流量监控查看方法大全

导读查看虚拟机实时带宽最直接的办法,是登录虚拟机内部使用系统自带命令(如Linux的ifstat、nload),或通过宿主机虚拟化平台(如vCenter、Proxmox)的监控图表查看,命令行工具:虚拟机内部的实时流量观测大多数场景下,你需要先确认带宽是跑在哪个网卡上,登录虚拟机后,先执行ip addr或ipcon……

查看虚拟机实时带宽最直接的办法,是登录虚拟机内部使用系统自带命令(如Linux的ifstat、nload),或通过宿主机虚拟化平台(如vCenter、Proxmox)的监控图表查看。

命令行工具:虚拟机内部的实时流量观测

大多数场景下,你需要先确认带宽是跑在哪个网卡上,登录虚拟机后,先执行ip addr或ipconfig确认IP对应的接口名,比如eth0、ens33或Windows下的“以太网适配器”。

Linux虚拟机:轻量级命令组合

第一步,用ifstat看即时速率。 如果系统没装,Debian/Ubuntu执行apt install ifstat,CentOS/RHEL执行yum install ifstat,运行后默认每秒刷新一次,输出eth0的进/出速率,单位是KB/s或MB/s,这个命令的优势是占用极低,适合在流量已经很高、不想加重负载时快速看一眼。

第二步,用nload看图形化实时曲线。 nload会显示当前、平均、最小、最大四个速率,以及一个简易的ASCII柱状图,安装方式与ifstat类似,包名就叫nload,它比ifstat直观,能一眼看出流量是突发还是平稳,行业共识认为,nload是排查瞬时拥塞时体验最好的命令行工具。

第三步,用sar -n DEV 1 3采样历史趋势。 这是sysstat包里的命令,执行后每1秒采样一次,共采样3次,输出里rxkB/s和txkB/s两列直接对应收/发字节数,如果你怀疑带宽问题间歇性出现,可以用sar -n DEV 1 1000后台跑一段时间,把输出重定向到文件再分析,多数情况下,这个命令比前两个更适合“捉”那些每几分钟才跳一次的流量尖峰。

第四步,用ethtool -S eth0查累计丢包与错误计数。 这里的tx_bytes和rx_bytes不是速率,而是网卡自开机以来的累计流量,如果tx_errors或rx_dropped增长明显,说明带宽不是被占满,而是物理链路或驱动层面出问题了。

Windows虚拟机:资源监视器是首选

Windows Server或Win10/11虚拟机里,按Win+R输入perfmon打开性能监视器,或者直接搜索“资源监视器”,切到“网络”选项卡,界面会列出每个进程的发送/接收速率,还能看到TCP连接占用的带宽,这个方法比任务管理器里的“性能→以太网”图表更精确,因为任务管理器只显示总利用率,而资源监视器能定位到是哪个进程在“偷跑”流量。

虚拟化平台自带工具:宿主机视角的整机监控对比

如果虚拟机内部系统繁忙到无法登录,或者你想同时对比多台虚拟机的带宽,就得站在宿主机上看。

VMware ESXi:vCenter与esxtop

单台ESXi主机,可以直接SSH登录后执行esxtop,按n键切换到网络视图,列表里会显示每台虚拟机网卡的MBYTES/s收发速率,注意新版ESXi默认关闭SSH服务,需要在主机“服务”里手动启用,且仅建议在排查问题时临时开启。

如果是vCenter管理多个集群,更推荐用Web客户端的“性能”标签页,选中目标虚拟机,把视图切到“网络”,图表会展示实时和历史两个时间轴的带宽曲线,粒度最低到20秒一次采样,足够看清常规业务波动,这里能直接对比多台虚拟机的带宽曲线,是判断负载是否均衡时最省事的办法。

KVM/QEMU:libvirt与virt-top

Linux下跑KVM的宿主机,先确保安装了virt-top工具(包名通常就叫virt-top),运行后按n键,界面会列出每台KVM虚拟机的RX bytes和TX bytes,单位会自动适配,如果想看更精细的历史数据,需要配合libvirt的virsh domifstat轮询,例如执行virsh domifstat myvm vnet0,会输出该虚拟机的vnet0接口累计收/发字节数,写个循环脚本每5秒抓一次,就能算出发速率的变化趋势。

Hyper-V:性能监视器里的专属计数器

Hyper-V宿主机上,打开“性能监视器”,添加计数器时选择“Hyper-V Virtual Machine”下的VM Bus Network Adapter(按虚拟机实例区分),或选择“Hyper-V Virtual Switch”下的Bytes Sent/sec与Bytes Received/sec,这是微软官方推荐的监控口径,比在虚拟机内部看更接近物理网卡的真实流量,因为它包含了虚拟交换机层面的所有收发操作。

监控场景 推荐工具 数据粒度 是否需登录虚拟机
Linux内部分析进程流量 nload / ifstat 秒级 是
Windows内部分析进程流量 资源监视器 秒级 是
KVM多虚拟机横向对比 virt-top 秒级 否
vCenter集中监控趋势 Web性能图表 20秒级 否
Hyper-V物理网卡精确统计 perfmon计数器 秒级 否

第三方流量监控工具的选型对比

内置工具在“临时看一眼”的场景里完全够用,但如果你需要持续记录、告警或按历史数据做带宽规划,就得引入第三方方案,业内专家指出,监控工具的选型优先级应是“先确认数据准确性,再考虑展示美观度”。

轻量级方案:Netdata,部署在宿主机上,网页界面能实时展示每台虚拟机的收/发速率,默认保留5分钟到1小时的短周期历史数据,优势是零配置、开箱即用,但长期存储能力弱,适合个人试验环境。

中等规模方案:Prometheus + node_exporter,在虚拟机内部或宿主机上抓取node_network_receive_bytes_total和node_network_transmit_bytes_total指标,配上Grafana仪表板,这个组合的历史数据保留时间取决于你的存储规划,查询速率时用rate(metric[5m])函数就能算出过去5分钟的平均带宽,相比Netdata,它的告警规则更灵活,可以指定“连续5分钟出口带宽超过80%就触发通知”。

商用方案:Zabbix,通过Agent部署到每台虚拟机,能监控到网卡流量、CPU、内存的联动趋势,它的优势是告警媒介众多(邮件、钉钉、企微),且能自定义“带宽突降”这种异常检测场景,缺点是部署较重,需要独立的数据库和前端,通常只在10台以上虚拟机规模时才划算。

选型建议:如果你只是想解决“带宽跑满”的排查问题,没必要上重型监控系统,先用nload确认流量大小,再用lsof -i或nethogs定位到具体进程或连接,多数情况下这一步就能定位问题,只有当你想做月度带宽趋势报表,或者应对“业务方突然说网络慢”这类复盘需求时,才值得搭建Prometheus或Zabbix。

常见问题排查:带宽异常时的行动路径

虚拟机内部看下载速度正常,但外部访问很慢。 先查宿主机物理网卡是否被打满,用iftop -i eth0在宿主机上看外部流量,或者检查虚拟交换机端口是否开启了限速策略,一些虚拟化平台默认会为虚拟机网卡设置流量上限,比如vSphere的traffic shaping,需要进入虚拟机编辑设置里的“虚拟网卡→高级参数”查看,KVM则需检查tc命令配置的tbf策略。

装了监控工具,看到速率在1Gb/s附近波动。 这只说明流量接近虚拟网卡上限,不代表物理链路有问题,需要检查宿主机与虚拟机之间的连接类型如果是1000Mbps的虚拟交换机,那么跑满1Gb/s是正常的;如果是25Gb/s的物理网卡做SR-IOV直通,则要看PF(物理功能)上的总流量是否超过25Gb/s,直通场景下,虚拟机内部看到的速率和宿主机上的速率应一致,若不一致,多半是驱动或队列配置问题。

带宽监控显示为0,但业务明显在传输数据。 打开虚拟机内部的任务管理器或ethtool -S,确认数据走的是不是另一块网卡(比如管理网卡和业务网卡分离的环境),同时检查监控工具采集的是哪个接口名,vnet0和eth1在虚拟化环境中很容易对应错。

查看虚拟机实时带宽这件事,本质上是“先分层、再定位”,登录虚拟机内部用系统命令看进程级流量,在宿主机用虚拟化平台工具看整机级流量,最后用第三方监控方案补历史趋势和告警能力,只要能保证这三个层面任选其一都能快速跑通,日常的带宽排查和性能评估就都有了落脚点。

虚拟机实时带宽怎么查看:常见问题解答

为什么虚拟机内部看到的带宽速率和宿主机监控图表显示的不一致?
这两种数据统计口径不同,虚拟机内部看到的是操作系统网卡驱动记录的收发包字节数,不包含虚拟交换机层面的开销(如VLAN标签、虚拟化封装头),宿主机监控的则是虚拟网卡在宿主机侧的实际转发流量,通常数值会略高几个百分点,这属于正常现象。

临时查看时,ifstat和nload哪个更适合在CentOS上快速跑一遍?
CentOS 7自带源里都有两个包,但nload的默认输出更直观,适合人眼观察实时波动;ifstat输出更干净,适合重定向到文件做后续脚本处理,若只需要看3秒内的瞬时速率,两者任选其一,结果差异不大。

用命令输出去判断带宽占用大小,需要把速率除以8换算成比特率吗?
不同工具的默认单位不同。ifstat默认显示KB/s,nload默认显示Mbit/s(和运营商带宽单位一致),virt-top按Mbytes/s显示,在汇报带宽占用率时,需先确认工具的单位,再与你的带宽上限(通常是Mbps)做换算。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱