小编Pyt*_*ner的帖子

KVM:哪些 CPU 特性使 VM 运行得更好?

我们使用带有以下参数的 Ubuntu 12.04:

  • 戴尔R910
  • 内核 3.2.0-25-generic #40-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
  • kvm 1:84+dfsg-0ubuntu16+1.0+noroms+0ubuntu13
  • qemu-kvm 1.0+noroms-0ubuntu13
  • qemu-common 1.0+noroms-0ubuntu13
  • qemu-kvm 1.0+noroms-0ubuntu13
  • 4 x Intel(R) Xeon(R) CPU E7-4870 @ 2.40GHz(每个都有 10 个物理内核,支持 HT 和 Intel VT)
  • Windows 来宾目前没有 VirtIO,但很快就会改变

我们在这台机器上运行了几个 Windows 来宾,其中一个是 Windows 2003 32 位,另一个是 Windows 2008(64 位)。我们目前正在努力解决性能问题并尝试使用 CPU 模型。

我们通常将“qemu-system-x86_64 用于我们的 Windows 32 位客户机,例如:

/usr/bin/qemu-system-x86_64 -S -M pc-1.0 -cpu qemu32 -enable-kvm -m 4096 -smp 4,sockets=4,cores=1,threads=1 [...] 
Run Code Online (Sandbox Code Playgroud)

这位客人的表现竟然有点低。我们还没有运行任何基准测试,但是假设当我们将 CPU 模型从“-cpu qemu32”切换到“-cpu Nehalem”时,将 VM 内的大量数据(文件)从一个目录复制到另一个目录的速度要快得多”。大约需要 2:40 小时复制的文件现在可以在 40 分钟内复制。当然,这不是一个高质量的测试,还有很大的空间可以进行更专业的尝试。但这是一个明确的指标,表明选择正确的 CPU 型号可能会严重影响来宾的性能。

现在我很好奇并跑了: …

virtualization central-processing-unit qemu kvm-virtualization

22
推荐指数
3
解决办法
9万
查看次数

KVM/Qemu、Ubuntu:为什么更多来宾 CPU 会快速增强磁盘 I/O?

我们有一个由两个节点组成的 Heartbeat/DRBD/Pacemaker/KVM/Qemu/libvirt 集群。每个节点都运行带有以下包/版本的 Ubuntu 12.04 64 位:

  • 内核 3.2.0-32-generic #51-Ubuntu SMP
  • DRBD 8.3.11
  • qemu-kvm 1.0+noroms-0ubuntu14.3
  • libvirt 0.9.13
  • 起搏器 1.1.7
  • 心跳 3.0.5

虚拟来宾运行 Ubuntu 10.04 64 位和 Ubuntu 12.04 64 位。我们使用 libvirt 功能将主机 CPU 的功能传递给虚拟来宾,以实现最佳 CPU 性能。

现在这里是这个集群上的一个常见设置:

  • VM“监控”有 4 个 vCPU
  • VM“监控”使用ide作为磁盘接口(出于显而易见的原因,我们目前正在切换到VirtIO)

我们最近运行了一些简单的测试。我知道他们不专业,没有达到高标准,但他们已经表现出一个强大的趋势:

节点 A 正在运行 VM“bla” 节点 B 正在运行 VM“监控”

当我们将文件从虚拟机“bla”同步到虚拟机“监控”时,我们仅达到 12 MB/s。当我们在虚拟机“监控”中执行一个简单的 dd if=/dev/null of=/tmp/blubb 时,我们达到了大约 30 MB/s。

然后我们向虚拟机“监控”添加了 4 个 vCPU 并重新启动它。VM“监控”现在有 8 个 vCPU。我们重新运行测试,结果如下:当我们将文件从 VM“bla”同步到 VM“监控”时,我们现在达到了 36 MB/s。当我们在虚拟机“监控”中执行一个简单的 dd if=/dev/null of=/tmp/blubb 时,我们现在达到了大约 61 MB/s。

对我来说,这种效果是相当令人惊讶的。为什么会自动为这个虚拟来宾添加更多虚拟 CPU …

performance central-processing-unit libvirt qemu kvm-virtualization

9
推荐指数
1
解决办法
2512
查看次数

kvm 和 qemu 主机:最大 CPU (Ubuntu 10.04) 有限制吗?

今天我们在两个相同的 kvm 和 qemu 主机(戴尔 R910)上遇到了一个非常奇怪的行为。每个主机系统都有 4 x 10 个内核,这意味着 40 个物理内核在操作系统(Ubuntu Linux 10.04 64 位,内核 3.0)中显示为 80。

我们在其中一个节点上启动了一个 Windows 2003 32 位 VM(1 个 CPU,1 GB RAM,我们多次更改了这些值),并注意到启动过程开始需要 15 分钟。在这 15 分钟内,会显示黑屏,但没有任何反应。libvirt 和主机系统显示,guest 虚拟机的 qemu-kvm 进程几乎处于空闲状态。stracing 这个过程只显示了一些 FUTEX 条目,但没有什么特别的。

15 分钟后,Windows VM 突然开始启动并出现 Windows 徽标。几秒钟后,VM 就可以使用了。VM 本身的性能非常好,所以这不是性能问题。

我们尝试使用 virsh 和 taskset 工具固定 CPU,但这只会让事情变得更糟。

当我们使用 Linux Live CD 启动 Windows VM 时,也会出现几分钟的黑屏,但不会长达 15 分钟。在此主机(Ubuntu 10.04)上启动另一个 VM 时,它也有黑屏问题,这里也是黑屏只显示 2-3 分钟(而不是 15 分钟)。

因此,总结一下:每个相同节点上的每个来宾在启动后几分钟都会空闲。几分钟后,启动过程突然开始。我们观察到空闲时间发生在客户机的 bios 初始化之后。

我们的一位员工想在 Grub(内核参数)中限制 CPU 数量,maxcpus=40(因为存在 40 个物理内核),突然“黑屏空闲”行为消失了。

搜索 …

central-processing-unit qemu kvm-virtualization pinning

6
推荐指数
1
解决办法
3608
查看次数

如何在 nginx 1.0.5 中启用重写功能?

我最近用 php fpm、php apc 和 postgres 安装了 nginx 1.0.5。我只想玩弄 nginx 并学习如何配置基本的东西。对于扩展测试,我决定安装 PHPBB3(运行良好)以查看 PHP + Postgres 访问是否有效。

现在我想了解重写 URL 的工作原理,并且已经发现重写的内容应该写在 nginx 配置的位置部分中。

但不幸的是,nginx 似乎忽略了我在配置中放置的每个重写规则。所以我想知道我是否必须先以某种方式打开重写功能?

nginx -V |grep rewrite什么也没显示,此外安装 nginx-extras 也没有帮助。我只是希望 nginx-extras 包含类似重写模块的东西,但不幸的是事实并非如此。

搜索 serverfault.com 和 google 没有帮助。那么——我该怎么办?:\ 任何帮助表示高度赞赏。

PS:所有软件包都是在 Debian 6 中使用 apt-get install 安装的。

编辑:下面是我的 nginx vhost 配置的摘录:

server {
            listen 80;
            server_name domain.org www.domain.org;

            access_log /var/log/nginx/domain.access_log;
            error_log /var/log/nginx/domain.error_log;
            rewrite_log on;
            events {
                     debug_connection  <my ip>;
            }
[...]
Run Code Online (Sandbox Code Playgroud)

rewrite nginx

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

Linux 服务器和 CPU/电源节流的最佳实践?

我正在运行几台 Debian 6 (2.6.32) 和 7 (3.2) Linux 服务器,它们都在其 BIOS 中启用了节能设置。此外,Linux 显示如果服务器空闲,则 CPU 会受到限制。

我想知道这是否会造成任何伤害 - 是否会因为 Linux 无法正确处理节流而对性能产生影响?

Linux 服务器和电源/CPU 节流是否有最佳实践?你们是将能量配置文件切换到“性能”还是将 BIOS 和操作系统都保留为默认设置?

我问的原因是我在物理戴尔服务器上遇到了几个性能问题,尽管所有值(CPU/负载、内存、I/O、网络等)似乎都正常。在这些特定情况下将 BIOS 电源设置更改为“性能”后,我能够摆脱性能问题。

linux performance bios electrical-power

5
推荐指数
2
解决办法
3113
查看次数

您使用什么来自动测试 Debian 软件包安装和更新?

我正在为 Wheezy 和自定义软件包使用 Debian 存储库(基于 reprepro)。我不时修改我的自定义包并在不同的系统上手动测试它们,例如:

  • 测试 a) 安装新版 Debian 软件包
  • 测试 b) 在已安装相同 Debian 软件包的旧版本的系统上更新 Debian 软件包
  • 测试 c) 卸载新版 Debian 软件包

通常,我在不同的服务器上运行这些测试。

由于自定义 Debian 软件包的数量在不断增长,手动测试过程消耗了我越来越多的时间。

所以我正在寻找一个现有的自动化测试框架。此外,如果这个测试框架支持在容器/虚拟机内部运行这些测试(例如使用快照,所以我们可以一遍又一遍地重新开始),那就太好了。此外,我希望在测试完成后收到一份完整的报告。

我知道我不是这个星球上唯一一个寻找这样一种工具的人。但是,使用 Google 和此站点上的搜索功能没有发现任何解决方案。我找到了“自动测试”,但我不确定这个工具是否适合我。

那么 - 您使用什么来自动测试 Debian 软件包安装和更新?

请注意,我不是在寻找测试包构建的工具(例如 Jenkins、Hudson)。

如果这个问题与 serverfault 上已经存在的条目重复,我很抱歉。如果是这种情况,如果您能将我指向正确的页面,我会很高兴。

编辑:debian 项目似乎完全使用了我正在寻找的内容:

编辑 #2:似乎 debci 正是我正在寻找的(见上面的链接)。我将看看这个工具并在这里分享我的经验。不过,如果您能分享您为此特定目的使用的工具,我会很高兴。

debian installation testing packages automated

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