相关疑难解决方法(0)

为什么在 Xen 下 TCP accept() 性能这么差?

我的服务器可以接受()新传入 TCP 连接的速率在 Xen 下非常糟糕。对裸机硬件的相同测试显示速度提高了 3-5 倍。

  1. 在 Xen 下怎么这么糟糕?
  2. 您可以调整 Xen 以提高新 TCP 连接的性能吗?
  3. 是否有其他虚拟化平台更适合这种用例?

背景

最近,我一直在研究在 Xen 下运行的内部开发的 Java 服务器的一些性能瓶颈。服务器使用 HTTP 并回答简单的 TCP 连接/请求/响应/断开连接调用。

但即使在向服务器发送大量流量时,它每秒也不能接受超过 7000 个 TCP 连接(在 8 核 EC2 实例上,运行 Xen 的 c1.xlarge)。在测试期间,服务器还表现出一种奇怪的行为,其中一个内核(不一定是 cpu 0)负载超过 80%,而其他内核几乎保持空闲。这让我认为问题与内核/底层虚拟化有关。

在裸机、非虚拟化平台上测试相同场景时,我得到的测试结果显示 TCP accept() 速率超过 35 000/秒。这是在运行 Ubuntu 的 Core i5 4 核机器上,所有内核几乎完全饱和。对我来说,这种数字似乎是正确的。

再次在 Xen 实例上,我尝试启用/调整 sysctl.conf 中的几乎所有设置。包括启用接收数据包控制接收流控制以及将线程/进程固定到 CPU,但没有明显的收益。

我知道运行虚拟化时性能会下降。但到这个程度?速度较慢的裸机服务器优于 virt。8 核乘以 5?

  1. 这真的是 Xen 的预期行为吗?
  2. 您可以调整 Xen 以提高新 TCP 连接的性能吗?
  3. 是否有其他虚拟化平台更适合这种用例?

再现这种行为

在进一步调查并查明问题时,我发现netperf性能测试工具可以模拟我遇到的类似场景。使用 …

virtualization linux performance xen amazon-ec2

89
推荐指数
2
解决办法
2万
查看次数

来宾 I/O 性能不佳 KVM Ubuntu 12.04

我有一个在 12.04 Ubuntu 主机内运行的来宾 VM。VM 是使用 vmbuilder python 脚本创建的。

在主机上,phoronix-test-suite "aio-stress" 提供了 >1600MB/s 随机写入吞吐量的性能速度。

VM(也运行 12.04)提供大约 3MB/s 的随机写入吞吐量。远,差远了。 http://openbenchmarking.org/result/1301161-BY-20130116176

我已将主机上的默认文件映像类型从 qcow2 更改为 raw 以提高磁盘吞吐量,并确保编辑 vmbuilder 模板以使用“virtio”作为目标开发者。

这导致速度提高到 7.5MB/s - 仍远低于我的预期。

去年运行 10.04(具有 10.04 个虚拟机)的同一台机器实现了 700MB/s 的吞吐量http : //openbenchmarking.org/result/1205239-BY-20120523168

谁能指出我可能有什么问题?

performance io vmbuilder kvm-virtualization ubuntu-12.04

2
推荐指数
1
解决办法
4230
查看次数