基准测试中的猫鼠游戏

今天一大早就要坐高铁从一个已经没有中高风险区的城市去另外一个有中风险区的城市坐飞机回深圳,这也算是一个十分有趣的话题了。最起码能看出两个城市管理水平上的差距。今天这篇文章不是早上起来临时写的,而是翻出了一个以前的小故事,讲的还是最近谈的比较多的基准测试的事情。

企业自行做服务器基准测试的主要目标是为了标准化不同硬件设备的投标参数。十年前,小型机招标时代,IBM/HP/SUN等厂家通过招标参数上的设置来获得对自己企业有利的条件。比如HP小型机的一个CPU核和IBM小型机的一个CPU核如果按照4:1来计算,那么HP在价格上有压倒IBM的优势,如果按照8:1来计算,那么IBM就会在价格上占优。因此招标文件一出来,根据核数比就能看出那家公司在甲方那边的售前工作做的好了。为了更为科学的进行选型,做基准测试就是一个没有办法的办法了。自从X86一统江湖之后,这种基准测试很少做了,不过随着信创生态的发展,今后飞腾、泰山、龙芯、海光之间是不是也会有这种基准测试的需求呢?目前暂时还没看到,信创服务器供货都供不上,不过随着产能提升,这种竞争早晚都会出现的。一旦真的出现了,对天朝来说也是件好事情。

还是回归正题,这次测试我们做了十分精心的准备,希望能把各种漏洞都堵上。测试用例也没有采用相对简单的BENCHMARK,而是根据企业的核心系统创建了一组测试用例,测试数据也是从某个省公司脱敏了一套真实数据。

虽然我们觉得做了十分严格的准备,不过没办法,猫和老鼠的游戏肯定是没有终结的。最终测试也变成了测试小组和厂家之间的技术博弈。我们测试小组随时监控着测试的指标,一旦发现指标异常,就要进行分析,是不是存在什么问题。因为涉及每年数千万的采购,因此给每个厂家都留下了96小时的正式测试时间。原厂也比较拼,甚至部分厂商还从国外调了高水平的工程师来帮助优化。在时间上他们也十分珍惜,凌晨0点一过就立马进场,要充分利用这96小时的时间,取得最佳的效果。

第一场测试的厂家还算基本守规矩,没有太大的犯规,不过他们做了一个十分隐秘的调整,把HBA卡上的一些参数调整为生产环境不可能使用的值,这样就可以提升大约5%的指标。其副作用是IO延时会有较大的波动,会让测试的TPS指标波动较大,这种波动被我们的监控系统发现,于是我们就开始分析是否厂商使用了违规的配置。查了半天也没发现,后来通过一个隐蔽摄像头拍摄的视频中看到了他们在调整HBA卡的参数,于是检查了一下参数,与生产环境对比后发现了几个不同的参数。最终厂商接受了我们的质疑,将这几个参数恢复了缺省值。

第一家厂商还不算太离谱,另外一家厂商就更胆大了。实际上在类似的环境中我们已经做过摸底测试,大致的指标我们心里都有数。没想到这家厂商的测试结果远远超出我们的预期,比摸底测试高出30%以上。于是我们就对他们的测试环境做了一次合规性检查。所有的合规性脚本都没有发现异常。这个不合理的30%是怎么来的呢,如果所是比我们预期有10%的提升还可以说是他们的优化水平比较高,特别是那个从美国过来的老外,头发都白了,看样子是个十分资深的专家。经过半个多小时的分析,我们终于查到了一个疑点,就是这台服务器的CPU的主频好像不对劲。

参测厂商向我们测试期间,惠普工程师向测试组所报备的参测设备CPU型号为Intel(R) Itanium(R) Processor 9540,主频为2.13GHz,按照我们的合规性检查脚本,使用machinfo命令查询到的CPU信息如下:

基准测试中的猫鼠游戏

这个信息是正确的。但是我们使用/soft/hp/toolset/crashinfo命令看到的结果是不同的。

基准测试中的猫鼠游戏

我们看到,这条命令显示的CPU主频是2.53GHZ,而不是报备的2.13GHZ。看到抓住了作弊的老鼠,小伙伴们都很高兴,马上开了一张质疑单发给厂商。大家都兴奋的等着厂商前来认罪,没想到,不到半小时,厂家的代表过来解释说那是操作系统的一个BUG,他们打了补丁,这个错误就消失了。于是我们再次执行命令查看了CPU信息,确实这回看到的主频变成了2.13GHZ了。

不过猫和老鼠的游戏并不是这么玩的,就在刚才,我们的测试小组已经和厂商的竞争对手进行了电话沟通,问到了如何防止他们的竞争对手CPU上作弊的手段。竞争对手往往是我们最好的老师,他们一下子给出了五种检查CPU主频的方法。其中两种是我们用过的,还有三种我们没有使用过。于是我们立即用其他三种方法再次检查CPU的主频。三种方式都明确的显示出测试的服务器的CPU主频是2.53GHZ。

/opt/propplus/bin/cprop -detail -c “Processors”

/opt/propplus/bin/cprop -summary -c “Processors”  


在如此证据下,厂商的工程师仍然坚持说这是OS的BUG导致显示CPU信息错误。于是我找到那个老外,问他是不是使用了未申报的CPU或者对CPU做了超频处理。他给我的回答是:“I DO NOT KNOW”。我明确了他说的是他不知道,而没有说“NO”,心里就已经比较有把握了,一般老外不太敢在这种事情上撒谎,他说不知道就是因为不敢说“NO”。于是我立即要求现场停机开箱检查CPU的型号。

通过CPU上的型号编码,我们立即在INTEL的官网上找到了CPU相关信息。

Processor number

Part number

S-spec number

Frequency

9520

CM8063101049806

SR0SZ

1.73 GHz

9540

CM8063101049718

SR0T0

2.13 GHz

9550

CM8063101049807

SR0SY

2.4 GHz

9560

CM8063101049716

SR0T1

2.53 GHz

他们使用了不允许在中国销售的9560代替了9540来参加测试。至此这场猫鼠游戏告一段落。他们只能换上合规的CPU,继续测试。

其实我们和厂家的技术人员之间的关系都很好,平时他们也经常教我们一些独门秘籍。不过那一次我和那个哥们争执的很厉害,甚至差点动了手。事后我们还经常在一起合作,那一次测试也让我们俩的私交更好了。现在大家如果遇到,说起那件事来,还是挺欢乐的。


基准测试中的猫鼠游戏》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:https://www.bookhoes.com/4066.html