メモリ報告の問題

メモリ報告の問題

システムモニターを見ると、メモリの48%しか使用していないことがわかりました。 gkrellmと同じです。ただし、すべてのコマンドラインユーティリティは別々に報告します。これはfreeおよび/proc/meminfoの出力です。私が考えることができる唯一の理由は、グラフィックユーティリティがキャッシュ数を無視することです。しかし、それでも物理メモリに保存されていませんか? 2つ(グラフィックスとコマンドライン)の間になぜそのような違いがありますか?キャッシュは重要ではありませんか?

事前にありがとう

無料で

             total       used       free     shared    buffers     cached
Mem:       1915936    1831836      84100          0      11280     874072
Swap:      3866620     146944    3719676

猫/proc/meminfo

MemTotal:        1915936 kB
MemFree:           81740 kB
Buffers:           11900 kB
Cached:           869224 kB
SwapCached:         4128 kB
Active:           722020 kB
Inactive:         887300 kB
Active(anon):     669976 kB
Inactive(anon):   235424 kB
Active(file):      52044 kB
Inactive(file):   651876 kB
Unevictable:       50812 kB
Mlocked:               0 kB
SwapTotal:       3866620 kB
SwapFree:        3719680 kB
Dirty:               460 kB
Writeback:             0 kB
AnonPages:        776964 kB
Mapped:            52052 kB
Shmem:            126384 kB
Slab:              77824 kB
SReclaimable:      37580 kB
SUnreclaim:        40244 kB
KernelStack:        2800 kB
PageTables:        33836 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4824588 kB
Committed_AS:    2622452 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      560312 kB
VmallocChunk:   34359122920 kB
HardwareCorrupted:     0 kB
AnonHugePages:    118784 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12288 kB
DirectMap2M:     1949696 kB

答え1

/proc/meminfo の詳細は次のとおりです。

MemTotal: 使用可能な合計メモリー量 (たとえば、物理メモリーから一部の予約済みビットおよびカーネルバイナリコードを引いた値)

MemFree: LowFree+HighFree の合計です(全体統計)。

メモリ共有:互換性の理由から0ですが、常に0です。

SwapCache:一度スワップアウトされたメモリは再スワップアウトされますが、まだスワップファイルにあります(メモリが必要な場合はすでにスワップファイルにあるため、再スワップアウトする必要はありません。これによりI / Oが節約されます)。

/proc/meminfoで説明されているキャッシュは、メモリからページキャッシュ(diskcache)のSwapCacheを引いたものです。ここそしてこの説明はここ

gkrellmは、使用可能なメモリと使用済みメモリを計算するように指示します。

ここで使用されているメモリと使用可能なメモリは、カーネルによって報告された使用済みメモリと使用可能メモリからバッファとキャッシュを引いた値に基づいて計算されます。追加情報ファイルを見て、freeコマンドの「-/+ buffers / cache:」行と比較してください。 3つのメモリクレルが表示されている場合、カーネル「生使用可能」は一番右のクレルの後ろのスペースです。

実行すると、 free -mカーネルがファイルシステムバッファなどに使用するメモリの量を知らせる「バッファ」列と「キャッシュ」列が表示されます。

このキャッシュされたデータは、アプリケーションが「使用可能」よりも多くのデータを割り当てようとすると、カーネルによって解放されます。これが、「-/+ buffers/cache」ラインが実際に使用する際に注意すべき重要なラインである理由です。それ。システムで使用可能なメモリを確認してください。バラよりここ

答え2

キャッシュはパフォーマンスの点で重要です。ただし、空きメモリの場合:利用可能なメモリよりも多くのメモリが必要な場合、一部のキャッシュメモリは自動的に解放されます。

関連情報