Linuxシステムでは、 "free"を使用しているときの値は次のとおりです。
total used free shared buff/cache available
Mem: 26755612 873224 389320 286944 25493068 25311948
Swap: 0 0 0
合計、使用済み、無料の値は合算されません。合計=使用済み+無料を期待しています。
質問:ここで何が欠けていますか?
メインメモリの場合、メモリの実際のサイズは_used+free+buffers+cache
_ OR _used+free+buffers/cache
_として計算できます- _buffers/cache = buffer+cache
_。
free
のmanページはused
をUsed memory (calculated as total - free - buffers - cache)
として強調表示しています
無料のmanページが言うように:-
totalインストールされているメモリの合計(/ proc/meminfoのMemTotalおよびSwapTotal)
used使用済みメモリ(合計-空き-バッファ-キャッシュとして計算)
free未使用のメモリ(/ proc/meminfoのMemFreeおよびSwapFree)
shared tmpfsによって(主に)使用されているメモリ(カーネル2.6.32では/ proc/meminfoのShmem、ゼロとして表示)利用できない場合)
buffersカーネルバッファが使用するメモリ(/ proc/meminfoのバッファ)
cacheページキャッシュとスラブによって使用されるメモリ(/ proc/meminfoのキャッシュとスラブ)
buff/cacheバッファとキャッシュの合計
availableスワップせずに新しいアプリケーションを開始するために使用できるメモリの推定量。キャッシュまたは空きフィールドによって提供されるデータとは異なり、このフィールドではページキャッシュが考慮されます。また、使用中のアイテム(/ proc/meminfoでMemAvailable、カーネル3.14で利用可能、カーネル2.6.27以降、それ以外はfreeと同じ)
あなたの場合、
873224(使用済み)+ 389320(無料)+ 25493068(バフ/キャッシュ)= 26755612(合計)
Linuxは、開くすべてのファイルをキャッシュするのが好きです。 Linuxは読み取り用にファイルを開くたびにファイルをキャッシュしますが、システム上のプロセスがより多くのメモリを割り当てたい場合など、より重要なメモリが必要な場合はそれらのキャッシュをドロップします。同じファイルが何度も何度も使用される場合、メモリ内のこれらのキャッシュは単にLinuxを高速化します。ファイルを読み取ろうとするたびに実際にディスクにアクセスするのではなく、メモリから取得するだけで、メモリはディスクよりはるかに高速です。そのため、システムはbuff/cacheで25493068が使用されていることを示していますが、25311948が使用可能であることも示しています。システムが必要とする場合、キャッシュされたデータの多くは解放できます。