Linux 虚拟机运行速度因网络而变慢

Linux 虚拟机运行速度因网络而变慢

在工作中,我在 Windows7 机器上使用运行 Linux Mint 13 的虚拟机,该虚拟机运行 Oracle VM VirtualBox 4.2.16。笔记本电脑连接到网线,无线连接已关闭。虚拟机的网络设置是使用桥接适配器连接到千兆网络连接,并具有自己的 MAC 地址。这使我能够在 Linux 系统上运行 Samba,这样我就可以在两个操作系统之间共享文件。一切正常。

当我把笔记本电脑带回家时,问题就出现了。在家里,我使用无线连接。Windows 端没有互联网连接问题。另一方面,虚拟机运行速度非常慢。打开 xterm 窗口并完成“ls”命令可能需要 15 秒。我尝试在 VirtualBox 中使用不同的适配器设置启动虚拟机,甚至禁用所有网络适配器,但每次都看到相同的行为。

当我足够耐心(并且适配器已连接)时,我可以看到虚拟机正在获取 IP 地址,但无法 ping 外部世界的任何内容。这里可能发生了什么?

更令人困惑的是,我还有第二台虚拟机运行着相同版本的 Linux Mint。虚拟机硬件设置相同,只是没有运行 Samba 或任何我的工作。:) 无论如何,它连接到互联网并运行良好。

这两者之间有什么不同,导致一台 Linux VM 运行速度太慢以至于无法使用?我尝试过停止 Samba,但似乎没有任何改变。我还能尝试什么?

更新

今晚实验的结果(注:我所说的“Xterm 操作”指的是一些简单的事情,例如在 Xterm 窗口中输入‘ls’并浏览目录结构):

  1. 尝试在笔记本电脑(Windows 或 VM)上完全不启用网络连接的情况下运行。Xterm 操作仍然很慢。
  2. 启用笔记本电脑的无线网络连接。启用虚拟机的网络连接,但未连接。Xterm 操作很慢。
  3. 启用与虚拟机的 NAT 连接。虚拟机获取了一个奇怪的 IP 地址 (10.0.3.15),Xterm 操作仍然很慢。
  4. 启用桥接连接。获取了正确的 IP 地址(172.16.42.7,Windows 为 172.16.42.4,掩码均为 255.255.255.0),但 Xterm 操作缓慢。能够从虚拟机 ping 172.16.42.1,并从 Windows ping 虚拟机。

我应该提到我正在连接到 Apple Time Capsule 上的访客网络。

此时,我仔细检查了两台虚拟机(正在运行的虚拟机和未运行的虚拟机)之间的硬件配置。我注意到未运行的虚拟机启用了 3D 加速。当我禁用 3D 加速时,Cinnamon 窗口管理器显示了大量图形故障,但 Xterm 操作速度正常。我禁用了 3D 加速并重新启动进入软件渲染版本的 Cinnamon。

图形故障消失了,Xterm 操作速度正常。不幸的是,我无法进行外部连接。我的意思是我可以 ping 172.16.42.1,但不能 ping www.google.com。我可以切换到 MATE,但现在没有外部连接,这很困难。

当我在不同的网络上运行的时候,为什么窗口管理器和/或 3D 加速会影响 Xterm 窗口中的操作?或者这可能与电源等其他因素有关?我的厨房桌子有什么神奇之处吗?

更新 2

我将 Linux Mint 13 从运行 Cinnamon 切换到运行 MATE,从而解决了速度慢的问题!

不幸的是,我还没有脱离险境。这可能是另一个问题,但我无法连接到外界。运行 MATE 的 Linux Mint VM 启动并获取 IP 地址。我可以从 Windows ping 系统。我甚至可以从 Windows 安装 Linux Mint Samba 共享并浏览目录。

从 Linux Mint VM 的角度来看,我无法 ping 通 Windows 主机,但我可以通过 ssh 连接到我网络上的 Raspberry Pi。因此,网络内部的连接似乎工作正常。我只是无法 ping谷歌来自 Linux Mint VM。我甚至尝试通过有线网络连接,但没有成功。我可能应该写一个新问题,但我至少想在这里发布我的最新状态的更新。

答案1

很可能是 /etc/resolv.conf 中设置了错误的内容。内容要么指向错误的 DNS 服务器(不存在、损坏或位于防火墙后面(工作中的防火墙),要么您的网络无法让您访问列出的名称服务器所在的网络(例如,互联网或您的本地路由器/网关设备)。

当虚拟机运行缓慢时,以 root 身份编辑 /etc/resolv.conf 并注释掉其中的所有内容。

看看操作是否恢复正常速度。如果恢复正常,则 DNS 访问就是导致速度变慢的原因。

然后 ping 8.8.8.8。如果成功,编辑 /etc/resolv.conf 并将其作为第一行:

名称服务器 8.8.8.8

答案2

看起来虚拟机内部出了点问题,但我认为我们这边不可能找出你们那边的问题所在。只有你们能做到这一点,因为只有你们才能进行实验。

如果问题出在虚拟机的定义上,您可以尝试删除虚拟机并保留.vdi 文件,创建一个新的虚拟机(注意 32/64 位主机/客户机问题),然后连接.vdi 磁盘。

如果这没有帮助,那么问题就出在 Linux Mint 内部的 VM 中,并且可能是任何问题。

如果没有人提出更好的主意,那么我建议丢弃这个虚拟机并重新开始,也许可以以可以运行的虚拟机作为起点。

相关内容