![为何 G-Wan 在 Opteron 上的性能如此低下?](https://linux22.com/image/801436/%E4%B8%BA%E4%BD%95%20G-Wan%20%E5%9C%A8%20Opteron%20%E4%B8%8A%E7%9A%84%E6%80%A7%E8%83%BD%E5%A6%82%E6%AD%A4%E4%BD%8E%E4%B8%8B%EF%BC%9F.png)
我正在使用 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.4GHz
137,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