KVM 客户机中的 Mumble 控制通道性能不佳

KVM 客户机中的 Mumble 控制通道性能不佳

我在 Debian Wheezy Beta 4 (x86_64) KVM 客户机上运行 Mumble 服务器 (Murmur),该客户机在 Debian Wheezy Beta 4 (x86_64) KVM 虚拟机管理程序上运行。客户机通过 Virtio 网络接口连接到虚拟机管理程序系统上的桥接设备。虚拟机管理程序连接到 100Mbit/s 上行链路,并在客户机和其余互联网之间进行 IP 路由。

在此设置中,我们在客户端中双击频道和频道加入操作之间经历了明显的延迟。Linux 和 Windows 系统上 1.2.3 和 1.2.4 之间的许多不同客户端都出现了这种情况。

语音质量和延迟似乎完全不受此影响。大多数情况下,客户端的信息对话框显示语音和控制通道的延迟均为 16ms。控制通道的偏差通常比语音通道的偏差高很多。在某些情况下,控制通道的 ping 为 100ms,偏差约为 1000。看来 TCP 性能在这里是个问题。

我们在之前的设置上没有遇到任何问题,原则上它与新设置非常相似。我们使用基于 Debian Lenny 的 Xen 虚拟机管理程序和软虚拟化客户机以及 Mumble 1.2.3 系列的早期版本。

当前murmurd --version说:1.2.3-349-g315b5f5-2.1

更新: 我找到了这个讨论有人在虚拟化系统上运行 Mumble,遇到了与我完全相同的问题。

我到目前为止已经尝试过(但没有任何成功):

  • 在我的虚拟机管理程序系统上安装并试用了 Mumble 服务器
  • 在客户系统上安装并试用了 beta 1.2.4 Mumble 服务器
  • 将我的 SQLite 数据库从原来的 1MiB 减少到 300 KiB
  • 禁用系统上的 IPv6 以检查其是否是问题根源。
  • 使用 Debian Squeeze(稳定版)安装了客户系统并在那里尝试了 Mumble。

更新:之前我说过,我曾测试过将 Mumble 数据库和日志文件放入tmpfs内存文件系统,但问题并未得到解决。我在那里犯了一个错误,所以它实际上并没有存储在 中tmpfs。现在我已经真正做到了这一点,性能问题就消失了。但将其存储在 中tmpfs并不是真正解决我的问题的方法。

答案1

我发现这与 I/O 性能问题有关,因为我将 Mumble 服务器的数据库和日志文件放入了内存文件系统。导致 I/O 延迟严重的原因在于这个问题。通过添加 mount 选项解决了这个问题nobarrier,该选项是在 Linux 2.6.33 引入barrier默认选项后首次添加的。请注意,这确实引发安全问题。此外,分区是通过 Virtio 访问的,同时将缓存设置为nonewriteback。当缓存设置为 时,性能仍然很差writethrough

相关内容