我们使用带有以下参数的 Ubuntu 12.04:
我们在这台机器上运行了几个 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
我们有一个由两个节点组成的 Heartbeat/DRBD/Pacemaker/KVM/Qemu/libvirt 集群。每个节点都运行带有以下包/版本的 Ubuntu 12.04 64 位:
虚拟来宾运行 Ubuntu 10.04 64 位和 Ubuntu 12.04 64 位。我们使用 libvirt 功能将主机 CPU 的功能传递给虚拟来宾,以实现最佳 CPU 性能。
现在这里是这个集群上的一个常见设置:
我们最近运行了一些简单的测试。我知道他们不专业,没有达到高标准,但他们已经表现出一个强大的趋势:
节点 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
今天我们在两个相同的 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 个物理内核),突然“黑屏空闲”行为消失了。
搜索 …
我最近用 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) 我正在运行几台 Debian 6 (2.6.32) 和 7 (3.2) Linux 服务器,它们都在其 BIOS 中启用了节能设置。此外,Linux 显示如果服务器空闲,则 CPU 会受到限制。
我想知道这是否会造成任何伤害 - 是否会因为 Linux 无法正确处理节流而对性能产生影响?
Linux 服务器和电源/CPU 节流是否有最佳实践?你们是将能量配置文件切换到“性能”还是将 BIOS 和操作系统都保留为默认设置?
我问的原因是我在物理戴尔服务器上遇到了几个性能问题,尽管所有值(CPU/负载、内存、I/O、网络等)似乎都正常。在这些特定情况下将 BIOS 电源设置更改为“性能”后,我能够摆脱性能问题。
我正在为 Wheezy 和自定义软件包使用 Debian 存储库(基于 reprepro)。我不时修改我的自定义包并在不同的系统上手动测试它们,例如:
通常,我在不同的服务器上运行这些测试。
由于自定义 Debian 软件包的数量在不断增长,手动测试过程消耗了我越来越多的时间。
所以我正在寻找一个现有的自动化测试框架。此外,如果这个测试框架支持在容器/虚拟机内部运行这些测试(例如使用快照,所以我们可以一遍又一遍地重新开始),那就太好了。此外,我希望在测试完成后收到一份完整的报告。
我知道我不是这个星球上唯一一个寻找这样一种工具的人。但是,使用 Google 和此站点上的搜索功能没有发现任何解决方案。我找到了“自动测试”,但我不确定这个工具是否适合我。
那么 - 您使用什么来自动测试 Debian 软件包安装和更新?
请注意,我不是在寻找测试包构建的工具(例如 Jenkins、Hudson)。
如果这个问题与 serverfault 上已经存在的条目重复,我很抱歉。如果是这种情况,如果您能将我指向正确的页面,我会很高兴。
编辑:debian 项目似乎完全使用了我正在寻找的内容:
编辑 #2:似乎 debci 正是我正在寻找的(见上面的链接)。我将看看这个工具并在这里分享我的经验。不过,如果您能分享您为此特定目的使用的工具,我会很高兴。