centos - 升級2G內存,可是查出來卻不到2G,請問是不是被坑了?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-04-25 09:01:41
0
4
1026

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的內存,能出來 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個指令貼出來,算一下就知道了

滿天的星座

你沒被坑,就是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其實是實體記憶體減去一些預留位元和核心的二進位程式碼大小,所以是比物理記憶體小寫一些。

漂亮男人

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演算法的不同引起,一般認為是正常的。買硬碟硬體時也一樣。

左手右手慢动作

這個是2G的正常數值

如果你用redhat或其他發行版,可以用指令dmidecode,查看硬體資訊

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!