それは決して変わらないはずです。これは、RAM 内のいくつかの障害のある場所を示している可能性があります。 Memtest86+ を使用して RAM を診断できます。
それ以外では、仮想マシン ゲストを分析している場合にのみ、数値が変化する可能性があります。おそらく、VM ゲストが実行されているホストが、ゲストに割り当てられた RAM を調整しています。
編集 #1
MemTotal の変更につながる可能性のあるカーネル モジュールによるメモリ リークの可能性について議論しているこのフォーラムの投稿を掘り下げました。
抜粋:Re:システム メモリの量はどのように決定しますか?
<ブロック引用>2008 年 7 月 30 日、Bill McGonigle は次のように書いています。
<ブロック引用>2008 年 7 月 30 日 10:03 に、Thomas Charron は次のように書いています。
<ブロック引用>MemTotal は変更される可能性があります。 MemTotal は、メモリ内のカーネル バイナリ自体によって使用されるメモリを表示しませんが、モジュールがメモリをリークする可能性があり、MemTotal からも削除される場合があります。この出来事の詳細は覚えていませんが、Paulis が今話していることは知っています。MemTotal をマシンに存在する物理メモリとして定義する場合、それは単なるバグです。カーネルが使用できる合計メモリとして表示すると、正しく実行されていますよね?
はい、「バグ」とはその数値が下がったときのことで、何かがリークしていること、つまり「不良カーネル」を意味します。少なくとも潜在的に「悪い」(バグの可能性がある) カーネル モジュール。
カーネルやモジュールにバグがあることに不安を感じていたので、さらに掘り下げて調べたところ、MemTotal
ということがわかりました。 定期的に下向きまたは上向きに変化する可能性があります。これは定数ではなく、この値は、さまざまな状況下で、多くの場所でカーネル コードによって確実に変更されます。
例えば。 virtio_balloon kmod は MemTotal
を減らすことができます また、それを再び増やします。もちろん、mm/memory_hotplug.c は [add|remove]_memory
をエクスポートしています。 、どちらも多くのドライバーが使用しています。