三、建模过程
综合以上的需求分析,我们总结出一下几个测试项目,CPU单核理论性能,CPU多核理论性能,GPU理论性能,CPU瓶颈型游戏测试,GPU瓶颈型游戏测试,内存测试,存储测试,烤机稳定性测试和理论参数。每个测试项目基础分数100分,我们逐个对其进行量化分析。
首先对CPU单核理论性能进行量化,经过分析,CPU单核性能在CPU瓶颈型游戏中对游戏帧率影响往往是线性的。因此对于CPU单核分数我们也使用线性函数评分,可用使用成熟的CINEBENCH R20单核测试进行性能统计。得出分数后,我们以该分数除以基准线(i9 13900K单核分数)乘以100得出初步的量化数据。
CPU多核理论性能主要影响多个游戏线程的并发能力,也就是说该项性能越强,能通同时运行的游戏越多,单连接节点成本也就越低。但同时,多游戏进程并发能力也受GPU卡性能和GPU卡数量影响,GPU性能会在随后进行量化统计,我们这一步只考虑GPU卡数量,因此我们使用CINEBENCH R20的多核测试得出理论分数,并将该分数除以基准线(i9 13900K多核分数)乘以(支持GPU数量/8)乘以100得出初步的量化数据。
GPU理论性能和CPU单核性能一样,同样是线性影响游戏帧率,因此这里我们也同样使用线性函数量化GPU性能,使用3DMark Time Spy的GPU子得分除以基准线(RTX4090分数)乘以100得出初步量化数据。
CPU瓶颈型游戏帧率主要由单核性能影响,但是如同上述分析中,我们的游戏目标帧率只要达到串流所要求的60FPS,120FPS,144FPS即可,无需太高。因此我们在此项测试中,选用CSGO的1080P分辨率最高画质基准测试平均帧率,使用分段函数来模拟CPU瓶颈型游戏得分。游戏平均帧率为120FPS以下时得分为指数函数,120FPS得50分,120FPS到144FPS为线性函数,144FPS得100分,超过144FPS为对数函数。以该分数除以144乘以100得出初步量化数据。
GPU瓶颈型游戏的测试方法同CPU瓶颈型游戏类似,这里我们选取古墓丽影暗影的基准测试,在1080P最高画质下的平均帧率代入函数后得出分数除以144乘以100得出初步量化数据。对于多GPU卡的虚拟机这里还需要多测一轮多卡满载测试,利用虚拟机或者容器实现多卡同时运行古墓丽影暗影基准测试,记录各卡平均帧率。
内存性能对游戏总体影响不算很大,这里我们是使用AIDA64的内存性能测试,得出内存读,写,复制和延迟数据,代入以下函数[(++)//1000]*100得出初步量化数据。
关于存储性能,云游戏虚拟机大部分采用的是无盘模式,即由专门的存储虚拟机进行资源的写入,存储和读取。当然部分使用场景下仍然会使用到本地存储,因此我们依旧会进行存储测试,这里我们使用Crystal Disk Mark测试软件进行性能统计,进行10G读写测试,记录顺序读取速度SR,顺序写入速度SW,4K随机读取速度RR,4K随机写入速度RW,根据重要程度分别以30%,10%,50%,10%的权重代入函数(0.3*SR+0.1*SW+0.5*RR+0.1*RW)/10000*100得出初步量化数据。
烤机测试对于云游戏虚拟机的长期稳定运行至关重要,这里主要考察虚拟机上层宿主机的散热,供电,能耗,稳定性等能力。测试方法为使用AIDA64的烤机测试,开始测试之前记录待机CPU温度,GPU温度,功耗仪待机功耗,接着同时开启Stress CPU,Stress FPU,Stress GPU(s),进行半小时烤机测试,半小时后记录CPU温度,GPU温度,CPU频率,GPU频率,烤机功耗。这里根据这些数据单独建立几个量化指标,一是性能稳定性:[(CPU全核烤机频率)/(CPU理论全核最高睿频)*0.5+(GPU烤机频率)/(GPU理论Boost频率)*0.5]*100得出稳定性分数。
二是散热:[(100-CPU烤机温度)*0.5+(100-GPU烤机温度)]*100得出散热分数。
三是能耗比,能耗比采用(GPU瓶颈型游戏帧率+功耗Power/功耗)代入指数函数得出能耗比分数。
理论参数,这一步我们需要考虑各个虚拟机上层宿主机在以上测试无法体现出来但又实际影响使用的指标,一是体积:单计算节点(以一张GPU计算)体积是决定单位机房内所能容纳计算能力的重要指标,对降低IDC建设费用有重要影响。这里以10U作为基准:(10-单GPU节点平均体积)/10*100得到分数。
二是考量各个配件使用品牌和等级,一线品牌企业级产品得100分,非一线品牌企业级产品得80分,一线品牌民用级产品得60分,非一线品牌民用级产品得40分。
综合以上量化数据,我们得出各个能力指标的量化和分数模型,并根据其重要性赋予相应的权重值