centos - 升级2G内存,可是查出来却不到2G,请问是不是被坑了?

 傻傻的笑没心没肺wy 发布于 2022-10-26 13:49

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

请问是不是被坑了,如何在运营商面前发飙不被看出来很菜?

4 个回答
  • 这个是2G的正常数值

    如果你用redhat或其他发行版,可以用命令dmidecode,查看硬件信息

    2022-10-27 01:06 回答
  • free -m
    total used free shared buffers cached
    Mem: 488 424 64 54 22 205
    -/+ buffers/cache: 196 292
    Swap: 1999 0 1999

    上面是我的一台阿里云主机,一样少了一些,现在服务商一般都说是1024和1000算法的不同引起,一般认为是正常的。买硬盘硬件时也一样。

    2022-10-27 01:06 回答
  • 你没被坑,就是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实际上是物理内存减去一些预留位和内核的二进制代码大小,所以是比物理内存要小写一些。

    2022-10-27 01:06 回答
  • 其实你装上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个命令贴出来,算一下就知道了

    2022-10-27 01:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有