Swoole v4.6.0 版本发布,支持原生 curl 协程客户端
759
2022-05-29
今天我们聊一聊内存带宽。
什么是内存带宽?百度百科的定义如下:从功能上来看,大家可以将内存看作是内存控制器与CPU之间的桥梁或与仓库。显然,内存的容量决定“仓库”的大小,而内存的带宽决定“桥梁”的宽窄,两者缺一不可,这也就是常常说道的“内存容量”与“内存速度”。除了内存容量与内存速度,延时周期也是决定其性能的关键。当CPU需要内存中的数据时,它会发出一个由内存控制器所执行的要求,内存控制器接著将要求发送至内存,并在接收数据时向CPU报告整个周期(从CPU到内存控制器,内存再回到CPU)所需的时间(关于内存延时的话题,我们有机会再谈。)
专业的术语解释的也很专业,我们打个比方有助于我们更好的理解:内存好比储水罐,水龙头的阀门好比内存控制器,控制出水量,水龙头的口径相当于内存带宽,决定了最大的出水量。
内存带宽为何会如此重要呢?
在回答这一问题之前,先来简单看一看系统工作的过程。基本上当CPU接收到指令后,它会最先向CPU中的一级缓存(L1 Cache)去寻找相关的数据,虽然一级缓存是与CPU同频运行的,但是由于容量较小,所以不可能每次都命中。这时CPU会继续向下一级的二级缓存(L2 Cache)寻找,同样的道理,当所需要的数据在二级缓存中也没有的话,会继续转向L3 Cache、内存和硬盘。由于系统处理的数据量都是相当巨大的,因此几乎每一步操作都得经过内存,这也是整个系统中工作最为频繁的部件。如此一来,内存的性能就在一定程度上决定了这个系统的表现,这点在多媒体设计软件和3D游戏中表现得更为明显,尤其大型游戏,对内存带宽有着极高的要求,并且,随着屏幕分辩率的不断提高,内存带宽的压力也会越来越大。不过对于常规的应用来讲,不用太关心内存的带宽。
市面上测试带宽的工具也不少,今天我们使用比较普遍mbw工具,作为本次测试内存带宽的工具。
mbw 主要用于测试可提供给用户空间程序的内存拷贝带宽,可用于测试内存性能,通常用来评估用户层应用程序进行内存拷贝操作所能够达到的带宽。
闲话少说,开始采用云主机来测试内存的带宽,通往常一样,选用了阿里、华为和天翼云作为我们横向测评的云服务商。
一、云服务商配置
1、天翼云
地域:长春 可用区
规格:通用计算增强型 | c3.xlarge.2 | 4vCPUs | 8GB
镜像:CentOS7.4 64位
系统盘:高IO, 40 GB
计费方式: 按带宽计费 带宽: 5Mbit/s
2、华为云
地域:上海二 可用区3
规格:通用计算增强型 | c3.xlarge.2 | 4vCPUs | 8GB
镜像:CentOS 7.4 64bit
系统盘:高IO,40GB
计费方式: 按带宽计费 | 带宽: 5 Mbit/s
3、阿里云
地域 :华东 2 可用区 G
实例 :高主频计算型 hfc5 / ecs.hfc5.xlarge(4vCPU 8GiB)
镜像 :CentOS 7.4 64位
系统盘 :高效云盘 40GiB
二、安装mbw
1、安装mbw
安装很简单,执行下面三步即可
# git clone http://github.com/raas/mbw
# cd mbw
# make
2、查看帮助
# ./mbw -h
关键信息说明:
会执行三种方式的内存拷贝测试,如下:
-t0: memcpy test 内存拷贝
-t1: dumb (b[i]=a[i] style) test 字符串拷贝
-t2: memcpy test with fixed block size 内存块拷贝,块大小为262144 bytes
3、执行测试命令
# ./mbw -q -n 10 256
说明:
-q表示只打印统计信息 -n 10 表示执行10次,256表示测试所用内存大小,单位为MB。
三、测试结果数据
1、华为云
2、阿里云
3、天翼云
四、测试结果比较
分析:
1、在MEMCPY拷贝方式下,阿里云分值最高,而且比最低分高出11%;
2、在DUMB拷贝方式下,天翼云分值最高,不过跟其他2家差距不大。
3、在MCBLOCK拷贝方式下,华为云分值最高,比最低阿里云要高出22%。
总体看,三家云服务商在三种拷贝方式下,各有所长,天翼云整体表现居中。
云计算
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。