デフォルトでは、次の3つの出力が同時に取得されます。
トップ:
top - 02:54:36 up 2 days, 13:50, 3 users, load average: 0.05, 0.05, 0.09
Tasks: 181 total, 1 running, 179 sleeping, 0 stopped, 1 zombie
%Cpu(s): 2.5 us, 0.8 sy, 0.0 ni, 96.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 16158632 total, 11234480 used, 4924152 free, 844 buffers
KiB Swap: 16777212 total, 0 used, 16777212 free, 10640832 cached
無料-h:
total used free shared buffers cached
Mem: 15G 10G 4.7G 0B 844K 10G
-/+ buffers/cache: 578M 14G
Swap: 15G 0B 15G
トップ:
freeとtopが同意するようです。上部は11234480KiBを使用し、キャッシュされた10640832KiBを除くと579.7MiBになります。これは、使用されている+/-バッファ/キャッシュの下の無料レポートに非常に近いです。
しかし、htopは私が知っている限り存在しないか存在しない1836(MiB)を使用して報告します。この違いはどこから来るのか? htopには明らかにキャッシュされたデータは含まれていませんが、まだフリーまたはトップの3倍以上のメモリ使用量を報告します。
似たような質問がたくさんあることを知っていますが、この違いを説明する質問は見たことがありません。混乱は一般的にキャッシュの数があるかどうかがないようです。
編集:私はopenSUSEを実行しており、バージョン12.2と12.3 RC1で同じ違いを見つけたことに注意する必要があります。
Edit2:htopに含まれるバージョンは1.0.1です。また、ソースからバージョン1.0.2をコンパイルしましたが、同じ違いがありました。
答え1
以前の投稿を完全に書き直しました。少し気になってもう少し調べました。
簡単に言えば、違いがあるのは、openSUSEがパッチバージョンを使用するためです。トップそして無料これは追加の価値を追加します「隠れ家」。
a) 標準バージョン
トップ, 無料, htop, ...:
使用量は読んで計算されます。データソース: /proc/meminfo
:
たとえば、
#free:
Row Column | Corresponding /proc/meminfo entry
-----|--------|----------------------------------
Mem:
total : MemTotal
used : MemTotal - MemFree
free : MemFree
shared : MemShared
buffers : Buffers
cached : Cached
-----|--------|----------------------------------
-/+ buffers/cache:
used : (MemTotal - MemFree) - (Buffers + Cached)
free : MemFree + (Buffers + Cached)
#htop:
Used U* : ((MemTotal - MemFree) - (Buffers + Cached)) / 1024
*ユーザーモードで使用するメモリー名を使用してください。Used U
アカ減算(キャッシュ+バッファ)を使用。
したがって、実際には同じ計算が使用されます。
htop
メモリーメーターには以下が表示されます。
[Used U % of total | Buffers % of total | Cached % of total ] UsedU MB
(MBは実際にMiBです。)
B)パッチバージョン
free
Debian、Fedora、openSuse は以下に基づいてtop
います。procps-ng。ただし、各スタイルは基本プロジェクトの一部になることも、そうでない場合もある独自のパッチを追加します。
オープン水勢で我々は発見するtop/free(procps) パッケージへのさまざまな追加です。ここで注目すべき点は、キャッシュされた値を表すために使用されるいくつかの追加値です。(私のシステムは「クリーン」プロセスを使用しているため、以前の投稿にはこれらの内容は含まれていません。)
B.1) 補足
/proc/meminfoに投手版これはカーネルデータ構造キャッシュです。私たちが探しているサブカテゴリとしてSリサイクル可能これはSlabの一部であり、カーネルモードとユーザーモードで異なる用途にリサイクルできます。
さらに、私たちはキャッシュ交換これは一度スワップアウトされ、スワップインされましたが、スワップファイルにもあるメモリです。したがって、もう一度交換する必要がある場合はすでに完了しています。
最後にNFS_不安定サーバーに送信されたがまだ安定したリポジトリにコミットされていないページです。
cache
openSUSE パッチリリースには次の値が追加されました。
SReclaimable
SwapCached
NFS_Unstable
(また、いくつかのチェックがあります。合計は空き容量より大きくなければならず、使用される量はバッファ+キャッシュよりも大きくなければなりません。)
B.2) 結果
見ている無料したがって、次の値は同じです。
total, used, free and buffers
。
変更は次のとおりです
cached and "+/- buffers"
。
used = MemTotal - MemFree
old:
cached : Cached
+-/buffers-used: used - (Buffers + Cached)
+/-buffers-free: free + (Buffers + Cached)
patched:
cached : Cached + SReclaimable + SwapCached + NFS_Unstable
+/-buffers-used: used - (Buffers + Cached + SReclaimable +
SwapCached + NFS_Unstable)
+/-buffers-free: free + (Buffers + Cached + SReclaimable +
SwapCached + NFS_Unstable)
同じ追加をしてくださいトップ。
トップ変更がないため、以前/パッチが適用されていない親/無料バージョンとのみ一致します。