跳转至

服务器的性能指标分析

GPU场景下影响服务器性能的常见因素有以下几个: 1. CPU主频和CPU核心数量 2. 主板支持第几代PCIe,以及PCIe的带宽是多少(非常重要,往往被忽略) 3. 内存通道数和内存的主频 以下展开说明:

1. CPU主频和CPU核心数量

首先主频越高越好,核心越多越好。但是可以兼顾两者的CPU往往价格不菲,比如AMD线程撕裂者系列和INTEL的W系列(但这两者都属于桌面CPU范畴),虽然这两者性能非常好,但是一般仅在个人台式机、工作站上使用,因此如果是工作站可以优先考虑这类CPU。如果是服务器一般更多选择服务器专用CPU。服务器CPU在主频上一般低于桌面CPU主频,因此很多仅能使用单核的应用程序,使用桌面CPU会更快。 (INTEL服务器CPU简单科普:INTEL CPU,比如8225C、6330、8358P等,第2位数字可以看出来该CPU支持第几代PCIe,如果是2则支持的是PCIe3.0,如果是3则是PCIe4.0)

2. 主板支持第几代PCIe,以及PCIe的带宽是多少

“主板支持的是第几代PCIe”这个问题比较简单,一般看使用的CPU型号即可。不同代的PCIe带宽差别请参考:https://en.wikipedia.org/wiki/PCI_Express “PCIe的带宽是多少”这个问题不能简单看出来,甚至在操作系统中也不能简单鉴别,下面展开说明: 可以使用命令查看

# lspci -vvv | grep -i nvidia -A 25 | grep LnkSta

LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
LnkSta: Speed 16GT/s (ok), Width x16 (ok)
LnkSta: Speed 16GT/s (ok), Width x16 (ok)
LnkSta: Speed 16GT/s (ok), Width x16 (ok)
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
以上Width x16说明该GPU卡可用的PCIe带宽位为X16,前边2.5GT/s表示速率,可查表PCIe 4.0 X16的理论速率应该是16GT/s,上边有多张卡处于2.5GT/s的状态是因为没有使用,在休眠。 综合上边的说明,可以总结以下的查看顺序: 1. 看PCIe是第几代,比如PCIe 3.0的X16和4.0的X16速度差一倍(根据上边命令显示的速率和带宽,也可以判断是第几代PCIe) 2. 看GPU所能使用的PCIe带宽,X16就比较优秀,一般正常X8,如果低于X8那就会比较慢

除了上边的看点,还有一种情况较难分辨(属于坑)。某些准系统带有PCIe Switch(大致的作用是多个PCIe设备之间可以直接通过该Switch交换数据),然后该PCIe Switch的带宽为X16,其上会插4张GPU(一般的做法),于是通过上述命令看每张卡的PCIe数据都很好,都是X16,实际则是4张卡共享X16的带宽。因此有这种设备的机器,使用NVIDIA的p2p程序测试结果也会很好,因为p2p测试时是2卡2卡进行通信带宽测试,但是实际使用时可能是8卡并行,此时带宽就显得捉襟见肘。

3. 内存通道数和内存的主频

虽然内存条插多插少对操作系统而言都是统一地址编码,不影响系统正常工作,但是很影响性能。比如2 x 32G比1 x 64G的内存因为开了双通道会更快,再比如双路CPU的主板,CPU和内存槽之间有亲和性,内存条插在哪个槽也会有讲究。总的来说为了获得更好的性能,建议主板有多少内存槽就插多少根内存,这样能获得最佳的性能。 内存的主频在主板确定的条件下越高越好,但是可支持的内存主频高低与CPU、主板有关,比如PCIe4.0的服务器最高只支持3200MHz的内存,如果要用更高主频内存,那么需要购买支持PCIe5.0的CPU和主板等

总结

在使用GPU的场景中,如果只关注单卡计算的性能(注意不是指一台机器仅一张卡,而是计算时是单卡单卡的独立计算,不涉及多卡之间交换数据),那么相对简单,选择一块主频高、核心多的CPU即是关键。如果经常使用多卡并行,那么要判断当前的GPU是否支持多卡之间p2p通信(一般规律是专业卡可以,游戏卡不行),如果可以p2p通信,那么GPU的通信带宽基本可以发挥出PCIe峰值带宽的性能,如果不支持p2p通信,那么卡与卡之间会通过Host内存“中转”,因此就这种情况需要重点关注上述内存的配置,否则难以达到PCIe的峰值性能