相关疑难解决方法(0)

CPU0 被 eth1 中断淹没

我有一个 Ubuntu VM,在基于 Ubuntu 的 Xen XCP 中运行。它托管基于 FCGI 的自定义 HTTP 服务,位于nginx.

下从负载ab 第一CPU芯饱和,其余为欠载。

/proc/interrupts我看来,CPU0 提供的中断比任何其他内核都多一个数量级。他们中的大多数来自eth1.

我可以做些什么来提高此 VM 的性能?有没有办法更均衡地平衡中断?


血腥细节:

$ uname -a
Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux

$ lsb_release -a
没有可用的 LSB 模块。
分销商 ID: Ubuntu
描述:Ubuntu 11.04
发布:11.04
代号:natty

$ cat /proc/interrupts 
           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7       
283:113720624 0 0 0 0 0 0 0 xen-dyn-event …

linux ubuntu performance-tuning interrupts high-load

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

CPU 核心利用率不均

tl; dr:第一个 CPU 内核始终处于饱和状态,所有其他内核始终负载不足。

一个虚拟机,在基于 Ubuntu 的 Xen XCP 中:

$ uname -a
Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux

$ lsb_release -a
没有可用的 LSB 模块。
分销商 ID: Ubuntu
描述:Ubuntu 11.04
发布:11.04
代号:natty

此 VM 有 8 个 CPU 内核。

这个虚拟机上运行着 10 个单线程工作进程,它们通过 FCGI 接口连接到 nginx 服务器(在本地网络端口上侦听)。

在来自 AB 的合成负载下,只有 8 个内核中的第一个内核会加载到 100%(如从 中看到的htop)。它或多或少地始终处于非常高的负载下,所有其他内核的负载从 0% 到 100% 不等,或多或少是随机的(并且这些内核的 CPU 负载在跳动)。

这是我在负载下通常看到的内容htop

  1 [|||||||||||||||||||||||||||||||||||||||||||| …

ubuntu performance-tuning cpu-usage high-load

5
推荐指数
1
解决办法
1382
查看次数

什么时候不使用虚拟化?

当虚拟化是新的时,我们试图虚拟化所有东西,但后来我们注意到我们的虚拟机比裸机慢得多的用例。

对我们而言,在决定不进行虚拟化时,我们使用以下规则:

  • 网络 IO 密集型应用程序(即具有许多中断/数据包)
  • 磁盘 IO 密集型应用程序(如果不在 SAN 存储上)
  • RAM 密集型(这是最宝贵的资源)

我们在 Xen 和 DRDB 以及 Hyper-V 与 DAS 的无共享方面都有过这些经验。所有管理程序都是这种情况吗?

在决定是否虚拟化应用程序/服务器时,我应该寻找哪些(其他)指标?

virtualization limits

3
推荐指数
1
解决办法
2429
查看次数