答え1
top
マンページにはこれらのフィールドは記載されていませんが、free
~のする:
バッファー
カーネルバッファで使用されるメモリ(
Buffers
in/proc/meminfo
)隠れ家
タブレット(
Cached
および)SReclaimable
で使用されるページキャッシュとメモリ/proc/meminfo
ゲイン/キャッシュ
バッファとキャッシュの合計
書くことができる
スワップなしで新しいアプリケーションを起動するために使用できるメモリ量を見積もります。キャッシュまたは空きフィールドによって提供されるデータとは異なり、このフィールドはページキャッシュを考慮しており、使用中のプロジェクトによってすべての回収可能なメモリフラグメントが回収されるわけではありません(シミュレーション時にカーネル3.14
MemAvailable
で利用可能/proc/meminfo
、カーネル2.6.27+で利用可能))、それ以外の場合は無料と同じ)
デフォルトでは、「バフ/キャッシュ」は、ディスク上にあるか、すぐにシャットダウンする必要があるデータに使用されるメモリを計算して使用できます(読み取り後に変更されていない場合はそのメモリをすぐに使用できます)、または指定された十分な時間(存在する場合)、 「空き」は、追加の交換を行わずに割り当てて使用できるメモリ量を測定します。ディストリビューションで移植可能な使用可能なメモリ量を取得するには?詳細は)。
答え2
少しはっきりと言えば、バッファーであることを指す。苦い- 書き込みが完了するまでメモリを回復できません。
隠れ家合格したデータを指します。読む- 再読み込みが必要な場合に備えてアーカイブしますが、いつでもディスクから再度読み取ることができるので、すぐにリサイクルしてください。
答え3
この情報の正式なソースは次のとおりです。 /usr/src/linux/Documentation/filesystems/proc.txt
バッファー:生ディスクブロックの比較的一時記憶領域が大きすぎてはいけません(20MB程度)。 隠れ家:ディスクから読み取ったファイルのメモリキャッシュ(ページキャッシュ)。 SwapCachedは除外されます。
詳細についても確認できますここ。
Linuxページキャッシュ( "隠れ家:" from meminfo ) は、ほとんどのシステムで最も多くのRAMを使用する単一のコンシューマです
。バッファー:" in meminfo) は dentry/inode キャッシュと密接に関連しています。
または、ソースコードを分析してみてください。これ。
数量はbuffers
関数の戻り値です。nr_blockdev_pages(void)
long nr_blockdev_pages(void)
{
struct block_device *bdev;
long ret = 0;
spin_lock(&bdev_lock);
list_for_each_entry(bdev, &all_bdevs, bd_list) {
ret += bdev->bd_inode->i_mapping->nrpages;
}
spin_unlock(&bdev_lock);
return ret;
}
多くcached
:
global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram