从多篇文章上摘抄的。
在测试之前,应了解本机所具备的特点,比如CPU频率,内存频率,内存大小等
查看cpu(多少个核,频率,特性等)用如下命令
cat /proc/cpuinfo
查看内存(只有当前内存大小,已用空间等,不能看到内存频率)用如下命令
cat /proc/meminfo
要查看内存型号和频率等,用如下命令:
sudo dmidecode -t memory
查看cpu 内核频率命令;
cat /proc/cpuinfo |grep MHz|uniq
内存带宽计算公式:
带宽=内存核心频率*内存总线位数*倍增系数。简化公式为:
标称频率*位数。比如一条DDR3 1333 MHz 64bit的内存,理论带宽为:
1333*64/8 =10664MiB/s =10.6GiB/s
MemTotal:内存总数
系统从加电开始到引导完成,BIOS 等要保留一些内存,内核要保留一些内存,最后剩下可供系统支配的内存就是MemTotal.这个值在系统运行期间一般是固定不变的。
MemFree:空闲内存数
表示系统尚未使用的内存。MemUsed=MemTotal-MemFree 就是已被用掉的内存
MemAvailable:可用内存数
应用程序可用内存数,系统中有些内存虽然已被使用但是可以回收的。比如 cache/buffer /slab都有一部分可以回收,所以MemFree 不能代表全部可用的内存,这部分可回收的内存加上MemFree才是系统可用的内存,即:
MemAvailavle=MemFree+Buffers+Caches,它是内核使用特定的算法计算出来的。是一个估计值。它与MemFree 的关键区别在于,MemFree是说的系统层面,MemAvailavle是说的应用程序层面。
Buffer:缓冲区内存数
Cache:缓存区内存数
Shared:多个进程共享的内存空间
Buffer与Cache 区别:
首先从字面意义上讲,buffer是缓冲的意思,cache是缓存的意思,举个现实的例子,比如说铁道头上像弹簧一样的东西,就叫缓冲;部署在森林;里的存应急物资的保管箱,名叫Food Cache 类似于一种保存箱。其次,常见的说法,叫 write-buffer 和read-cache,buffer一般用作写操作上,cache 一般用在读操作上,不过也不是已成不变的;举例说明,每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事。用buffer 暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小。写入效率高了;Cache是为了弥补高速设备和低俗设备的鸿沟而引入的中间层,最终起到加速取速度的作用。