请问我这个是路由器运算性能限制了吗?

2021-11-26 15:45:30 +08:00
 Tilie
设备 a 使用网线跟路由连接.
设备 a 上起了个虚拟机使用以太网桥接的方式连接局域网.
设备 a 本地起了个 express.
虚拟机中使用 wget 下载 express 上的文件,速度只有 60MB/s,刚好是使用 iperf 测出的局域网速度.
这表明网速瓶颈不在无线性能上.
造成这种现象的原因可能是什么.麻烦各位给个关键词.
1843 次点击
所在节点    问与答
14 条回复
cpstar
2021-11-26 15:49:12 +08:00
虚拟机和 express 都在设备 A 上?那跟路由器能有半毛钱关系?
yuanshuai1995
2021-11-26 15:51:03 +08:00
是不是机械硬盘
Tilie
2021-11-26 15:53:12 +08:00
@cpstar 所以就挺好奇的
Tilie
2021-11-26 15:54:36 +08:00
@yuanshuai1995 不是,都是跑 ssd 上的
pinkbook
2021-11-26 15:57:32 +08:00
express 和虚拟机都在设备 a 上,那么流量是不经过路由器的,和路由器有什么关系。大概率是设备 a 的网桥或者虚拟网卡的瓶颈导致。另外测试 iperf 局域网不知道你是怎么测的,最好是两个设备互压,要不然如果收发在同一个设备上,需要更改本地路由表才能使流量经过路由器。
cpstar
2021-11-26 16:07:48 +08:00
另外,iperf 测速是设备 A ,还是设备 A 中的虚拟机呢?如果是设备 A ,网线连接路由器,但是只有 60MB/s 折合 480Mbps ,既不是 100Mbps 又不是 1000Mbps ,这难道不奇怪么?

正如楼上所述,网卡、虚拟交换机哪里有瓶颈吧?
ysc3839
2021-11-26 17:46:14 +08:00
楼主用的是 VMware 吗?如果是的话别用桥接,这是个类似集线器的很蠢的模式,比如虚拟机和宿主机互相访问时会走路由器绕一圈,而且虚拟机能抓到宿主机的包。
@cpstar @pinkbook 各位不信的话可以让楼主测试看看,或者等下我测试了把结果发上来。

另外,VMware Workstation 的界面里不给改虚拟网卡的型号 (ESXi 可以),默认会使用 e1000 或 e1000e 网卡,这两个网卡的好处是绝大多数系统都内置了驱动,印象中坏处是跑不满千兆,而 VMware 自己的半虚拟化网卡 vmxnet3 是能跑到 2.5G 的。但是安装 VM Tools 之后也会装上 vmxnet3 的驱动,以及绝大多数 Linux 发行版都启用了这个驱动,所以为了最佳性能建议手动改为 vmxnet3 。
修改方法很简单,用文本编辑器打开 .vmx 文件,找到 ethernet0.virtualDev (ethernet0 对应网卡 1 ,依此类推),改为 ethernet0.virtualDev = "vmxnet3" 即可。
Remember
2021-11-26 17:58:29 +08:00
@ysc3839 桥接了就等于同一个交换机下面的两台终端啊,走路由器很合理呀。想直接访问就用 NAT ,可以用 IP 互访,host 访问 guest 也可以用端口转发,比较简单。
ysc3839
2021-11-26 18:08:52 +08:00
@Remember 集线器是这种情况才合理,你见过哪个交换机会把下面的数据全都发往上级交换机,再等上级交换机发回来的?
Tilie
2021-11-26 18:42:35 +08:00
确实是使用的 vmware,刚使用 scp 传输文件是 140MB/s
Tilie
2021-11-26 18:44:08 +08:00
换了 nat 下载不下来. 本身使用桥接的原因就是让局域网内的其他设备能够访问虚拟机上的服务
Remember
2021-11-26 19:08:19 +08:00
@Tilie NAT 的话 host 和 guest 互访是没有障碍的,局域网其他设备访问 guest 可以用 host 的端口转发, 设置 VMnet8 的 NAT 设置里的端口转发。

@ysc3839 交换机也要转发所有数据啊,集线器是广播到所有端口,交换机只是不再向所有端口广播,但物理上两台机器都是连接到交换机的,交换机负责转发两者之间所有数据。两台机器之间又没有物理连接,不经过交换机,数据飞的么?
ysc3839
2021-11-26 19:19:24 +08:00
@Remember 是要经过交换机,但是按我以往的理解,VMware 的桥接是宿主机和虚拟机连接到一个交换机上,这个交换机再连接到主机外的上级交换机。按照这样的模型,宿主机和虚拟机之间的通信不会被发往上级交换机。但是实际情况是宿主机和虚拟机之间的通信会被发往上级交换机,所以我说 VMware 的桥接是类似集线器的模式。
Remember
2021-11-26 19:23:32 +08:00
@ysc3839 你理解错了桥接这个词,桥接既不是交换,也不是集线器,他就是桥接,硬要说类似,大概类似虚拟机的硬件直通模式。桥接模式下的 guest 机,你可以理解成为局域网内的另一台终端,只是恰巧,它物理上跟你 host 本机在一台机器上而已。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/818166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX