在测试前,理应了解本机所具备的特点,比如CPU频率、内存频率、内存大小,等等信息。
查看CPU用如下命令(多少个核,频率,特性等):
cat /proc/cpuinfo
查看内存用如下命令:(只有当前内存大小,已用空间等等,不能看到内存频率)
cat /proc/meminfo
要查看内存型号和频率等信息,用如下的命令:
sudo dmidecode -t memory
查看cpu内核频率命令:
cat /proc/cpuinfo |grep MHz|uniq
内存带宽的计算公式是:带宽=内存核心频率×内存总线位数×倍增系数。简化公式为:标称频率*位数。比如一条DDR3 1333MHz 64bit的内存,理论带宽为:1333*64/8=10664MiB/s = 10.6GiB/s
。
常用命令:
mbw -q -n 10 256
-n 10表示运行10次,256表示测试所用的内存大小,单位为MB。
mbw测试了MEMCPY、DUMB、MCBLOCK等方式的内存带宽。从测试结果看,前2都差不多,最后一种测试得到的带宽值比较高。
下面是使用taskset指定CPU核心和运行mbw次数的脚本。真正使用到的是taskset命令,它可以指定程序在哪个CPU核上跑,在多核CPU上,是个不错的工具。
taskset -cp 0,1 7460
[root@WQ mbw-master]# ./mbw -h
mbw memory benchmark v1.4, https://github.com/raas/mbw
Usage: mbw [options] array_size_in_MiB
Options:
-n: number of runs per test (0 to run forever)
-a: Don’t display average
-t0: memcpy test 内存拷贝
-t1: dumb (b[i]=a[i] style) test 字符串拷贝
-t2: memcpy test with fixed block size 内存块拷贝
-b <size>: block size in bytes for -t2 (default: 262144)
-q: quiet (print statistics only)
(will then use two arrays, watch out for swapping)
‘Bandwidth’ is amount of data copied over the time this operation took.
The default is to run all tests available.
mpstat -P ALL 2 2秒监视
[root@WQ mbw-master]# ./mbw -q -n 1 256
0 Method: MEMCPY Elapsed: 0.06992 MiB: 256.00000 Copy: 3661.327 MiB/s
AVG Method: MEMCPY Elapsed: 0.06992 MiB: 256.00000 Copy: 3661.327 MiB/s
0 Method: DUMB Elapsed: 0.13613 MiB: 256.00000 Copy: 1880.569 MiB/s
AVG Method: DUMB Elapsed: 0.13613 MiB: 256.00000 Copy: 1880.569 MiB/s
0 Method: MCBLOCK Elapsed: 0.10634 MiB: 256.00000 Copy: 2407.282 MiB/s
AVG Method: MCBLOCK Elapsed: 0.10634 MiB: 256.00000 Copy: 2407.282 MiB/s
最新评论