设备性能测试 : 内存带宽的测试

zero, 说明:

       为了对系统的性能进行优化,因而需要分析系统的性能瓶颈在哪里,需要对系统的一些设备的性能进行测试。这一篇文章用于记录内存带宽的测试,如果文章中有不足的地方,请不吝赐教。

一,背景知识:

       下面提供一些关于内存结构的链接,如若侵权,请联系我进行删除.
              CMU MainMemory
              圖解RAM結構與原理,系統記憶體的Channel、Chip與Bank

二,实验环境

       所使用的CPU的信息如下 : 一台机器有24个物理核
CPU info
       所使用的内存条的信息如下 : 一台机器有8个相同的内存条
Memory Info

三,初步测试

       最初打算寻找一些现有的工具对直接进行测试,测试的结果如下:
       1,使用dd命令进行测试,命令如下 :

	 dd if=/dev/zero of=/dev/shm/A bs=2M count=1024

       测试的结果如下 :
        dd comander's result
       显然,2.7GB/s的内存带宽这个结果,是不能令人满意的。

       2,使用mbw命令进行测试,命令如下:

	mbw 16 -b 4096

       测试的结果如下 : (进行了多次测试,其中选取测试结果表现最好)
       在这里插入图片描述
       由于mbw使用了三种不同的方式进行了测试 :
       (1), 使用memcpy将一个数组复制到另一个数组 :
              其avg bandwidth为5.2GB/s,但是由于需要从一个数组复制到另一个,所以应该包括内存读和内存写,假设读写速度一样的话,其avg bandwidth应该为 5.2 * 2 = 10.4GB/s
        (2), 使用for循环将一个数组复制到另一个数组 :
              同理,可以看出其avg bandwidth为 12.2 GB/s
        (3), 使用mempcpy将一个块复制到一个数组 :
              由于只是重复地复制一个块,所以可以看做只有内存写操作,故其avg bandwidth为 12.2GB/s

       3, 使用sysbench进行测试,测试命令如下

	sysbench --test=memory --memory-block-size=4K --memory-totol-size=2G --num-threads=1 run
	sysbench --test=memory --memory-block-size=4K --memory-totol-size=2G --num-threads=16 run

       其中第一个命令使用了1个线程,第二个命令使用了16个线程,测试结果如下 :

       

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值