淘宝内核组的一个关于测试机器性能的帖子,很有意思

以前知道http://kernel.taobao.org有人玩cuibeboard,然后我觉得他们看来是不搞硬件相关的,今天重新去扫这个页面,发现一个内核组测试机器性能的帖子,看完之后,不得不承认内核组的技术和积累是非常之高深的,所以拿来转载了。

这个帖子主要测试calxeda这个用于服务器的ARM CPU的性能,这点我非常感兴趣。我们团队在确定除自己做的基于ARM-DSP双核的机器人嵌入式主板外,再选一个外设更加丰富通用的板子,为此需要写一个testbench来测试CPU的整体性能,由于我们机器人用的嵌入式板子任务比较单一,在IO方面就是有线网卡、无线网卡、摄像头和UART、IIC等外设,场景简单,基本上用不着测试IO性能,在计算方面主要是图像处理,属于典型的计算密集型任务,更因为图像处理的缘故,是一个对流水线和多线程比较敏感场景。所以在比较DM6446这个ARM-DSP芯片的性能时,ARM内核是v5,主频只有300MHz,但是DSP有600MHz,而且是比较好的C64P。我写了一个测试用例是对一幅图像进行滤波,单次滤波和多次(30)滤波,比较运行时间,图像滤波是一种纯CPU计算的,且可以充分利用流水线的应用,这么做的意义是充分发挥DM6446的DSP性能,看看使用别的通用ARM CPU的芯片能否比过它,能比过,才有选择它的理由。我们选择了hardkernel.org这个社区的odroid板子,采用三星的exynos 4412四核1.5G CPU,是三星S3手机的CPU,性能很强悍。在多次滤波的比较中,DM6446的运行时间足足比exynos 4412快了一倍,这个效率甚至要和我的i5CPU的主机一样。经过这次的对比,我对比较各种CPU、各种平台的性能非常感兴趣,也直接导致我的毕设选题采用了ARM-FPGA架构的Zynq平台,专门研究加速理论。

内核组对处理器平台的测试全面、详细、科学,实在是测试中的范例!转载地址:http://kernel.taobao.org/index.php/calxeda_test_report

分别测试CPU性能,内存,FIO,ext4下的表现,以及大文件、hadoop和distributed volume。

测试CPU性能:算PI

time echo "scale=5000; 4*a(1)" | bc -l -q

测试内存

sysbench --test=memory --memory-block-size=8192 --memory-total-size=2G run

fio,测试主要是看跑io密集型程序对CPU的压力

原谅我看不懂这个测试方法。

ext4,只测试arm

mkfs.ext4

拷贝大文件:

1、nc 将10G文件从45拷贝到39,用时4m13s。这个方法太妙了,测试打文件必备技能。

192.168.99.39:

nc -lp 12345 > /data/here

192.168.99.45:

time nc -w 1 192.168.99.39 12345 < /data/example

2、scp复制

time scp /data/example 192.168.99.39:/data/

3、bbcp,bbcp是一个p2p的文件copy工具,见http://pcbunn.cithep.caltech.edu/bbcp/using_bbcp.htm和http://www.slac.stanford.edu/~abh/bbcp/

time bbcp -w 4M -s 8 /data/example 192.168.99.39:/data/here

hadoop和distributed volume,我只能慢慢消化了。

正规军的测试才真的是测试,佩服!多么期待自己能去这样一个地方工作啊。

你可能感兴趣的:(有点意思)