升级2G内存,可是查出来却不到2G,请问是不是被坑了?
CentOS 64位升级2G内存,可是查出来却不到2G
$ free -m
total used free shared buffers cached
Mem: 1876 605 1270 0 2 67
-/+ buffers/cache: 535 1340
Swap: 0 0 0
请问是不是被坑了,如何在运营商面前发飙不被看出来很菜?
Answers
你没被坑,就是2G内存。
制造商说的2GB,单位是Gigabyte,1GB等于1000^3 Byte
我们平时说的GB,单位是Gibibyte,规范的缩写应该是GiB,等于1024^3 Byte
所以会造成两边数据不一致。
准确的方法是:
dmidecode -t memory | grep 'Installed Size'
(grep的内容看发行版本不同而异,我是CentOS 6,不确定的可以不grep,直接看,就是内容比较多)
为什么说free -m不准:free命令是从/proc/meminfo中取数值展现,而/proc/meminfo中的MemTotal实际上是物理内存减去一些预留位和内核的二进制代码大小,所以是比物理内存要小写一些。
其实你装上2G的内存,能出来 total :1876就已经能证明是2g的内存了。。如果内存有问题,难道是3G的缩水到1876?
看的出来题主还是对1024那个算法不服,怎么就能算出来1876了呢 ?
请题主运行2个命令把结果贴出来
1.
cat /proc/meminfo |grep MemTotal
2.
free -b
我用4G的举例子(还真没有2G的机器)
1.
free -m
total:3852
MB
1.
free -b
(这个单位是bytes!)
total:4039471104
bytes
2.
cat /proc/meminfo |grep MemTotal
3944796
kB
3944796 kB*1024=4039471104bytes,和free -b结果是相同的
4039471104bytes / 1024=3944796 kB / 1024=3852.33984375MB
正如你看到的。。明白了吗?或者你运行这3个命令贴出来,算一下就知道了