web-dev-qa-db-ja.com

物理RAMと/ proc / meminfoの間の不一致

8 GBの16 GB DIMMを搭載したシステムを使用しているため、合計で128 GBです。

ただし、/proc/meminfoによって報告されるMemTotal131927808 kBであるため、131 GB

私の研究は、もしあれば、meminfoは、 もっと少なく RAM合計よりも。

https://www.thegeekdiary.com/understanding-proc-meminfo-file-analyzing-memory-utilization-in-linux/

したがって、Googleの計算機はこの合計を131として報告します(1000000で割っただけです)

https://www.google.com/search?q=131927808+kB+to+GB

kBをキビバイトと解釈すると、代わりに135 GB(さらに悪い!)

キビバイトからギビバイトにすると、125になります。

またはキロバイトからギガバイトへ122

詳細は以下の通りです。誰かがこの矛盾を理解するのを手伝ってくれる?ありがとう!

# cat /proc/meminfo
MemTotal:       131927808 kB
MemFree:         3186732 kB
MemAvailable:   99191856 kB
Buffers:         3476036 kB
Cached:         115792344 kB
SwapCached:       120540 kB
Active:         80544652 kB
Inactive:       45017236 kB
Active(anon):   28044884 kB
Inactive(anon):  3127872 kB
Active(file):   52499768 kB
Inactive(file): 41889364 kB
Unevictable:       13040 kB
Mlocked:        584115752720 kB
SwapTotal:       1953788 kB
SwapFree:              0 kB
4
Duke Leto

DIMMのメモリ容量は2の累乗で測定されるため、要求されるRAM「128ギガ何か」の容量は128 GiBであり、134,217,728 kiBです。/proc/meminfoalsoは、メモリを2の累乗で測定するため、131,927,808のMemTotal値は、134,217,728と比較でき、安全に少なくなります。

MemTotalは、インストールされている物理メモリの合計から、システムファームウェアとカーネルバイナリによって予約されているものを差し引いたものです。ブートログには次の形式の行が含まれている必要があります

... [    0.000000] Memory: 32784756K/33435864K available (10252K kernel code, 1243K rwdata, 3324K rodata, 1584K init, 2280K bss, 651108K reserved, 0K cma-reserved)

これは、システム(「予約済み」の図)とカーネルバイナリ(「カーネルコード」の図)によって予約されている量を正確に示します。

5
Stephen Kitt