为何 G-Wan 在 Opteron 上的性能如此低下?

为何 G-Wan 在 Opteron 上的性能如此低下?

我正在使用 Opteron 6234 6 模块/12 核处理器在 CentOS 6 上使用 2.6.32 Linux 内核测试 G-Wan 4.3.14。

运行一个简单的 weighttp 测试我得到:

weighttp -k -n 1000000 -t 6 -c 1000 localhost:8080

finished in 7 sec, 250 millisec and 896 microsec, 137913 req/s, 1044186 kbyte/s
requests: 1000000 total, 1000000 started, 1000000 done, 1000000 succeeded, 0 failed, 0 errored
status codes: 1000000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 7753000286 bytes total, 256000286 bytes http, 7497000000 bytes data

这似乎异常低。有人有在 Opteron 上调整 G-Wan 或其他 HTTP 服务器的经验/建议吗?

答案1

使用 [AMD] Opteron 6234 6 模块/12 核处理器

[1]的得分为6-Core AMD Opteron @ 2.4GHz137,913 req/s,低于我们在 Intel 6-Core Xeon W3680 @ 3.33GHz[2] 上的 850,000 req/s(带有 100 字节静态文件)。

除了每个架构性能的差异*之外,G-WAN 的问题还出在 AMD CPU 上,因为我们无法使用任何这些 CPU(我们所有的机器都配备了英特尔 CPU)。

感谢最近的 AMD 用户报告,我们发现 AMD CPU 检测到的 CPU 核心数是实际数量的两倍。这是因为 AMD 有自己的一套CPUID代码和返回值 - 这与英特尔的不同。

此 AMD CPU 核心错误检测导致明显的 CPU 缓存冲突 - 这些问题应该由 G-WAN 解决。

目前,./gwan -w 6您可以通过使用强制任何给定的多核设置,在需要时绕过 G-WAN 自动检测。

就您而言,您应该使用 6 个物理 CPU 核心,而不是 G-WAN 错误使用的 12 个核心。这是您现在可以做的(而且通过这样做,您很可能会获得更高的基准测试结果)。

我们将在下一版本中发布 AMD 解决方法,以确保不再需要进行手动调整。

[*] 参考:

[1] http://www.cpubenchmark.net/cpu.php?cpu=AMD+Opteron+6234

[2] http://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+W3680+%40+3.33GHz

答案2

这只是一个猜测,所以我可能完全错了......但是遠龍NUMA建筑学。

有时程序针对非NUMA(非常常见)架构进行了优化,然后在NUMA环境中性能较低。

为了测试这一点,您可以在与您的 Opteron 相当的 Phenon 或 i7 中运行具有相同数据(或几乎相同数据!)的完全相同版本的 G-Wan!

太好了..我正在尽力帮忙但却得到 -2 票...太棒了!

相关内容