Buffersとcachedの違いは?

2645 ワード

A buffer is something that has yet to be “written” to disk. A cache is something that has been“read”from the disk and stored for later useはアプリケーションにとってbuffers/cachedは利用可能であり、buffer/cachedはファイル読み出しの性能を向上させるため、アプリケーションがメモリを使用する必要がある場合、buffer/cachedはすぐに回収される.したがって、アプリケーションの観点から、使用可能なメモリ=システムfree memory+buffers+cached.メモリはいつ交換され、どちらで交換されますか.
利用可能なメモリが定格値より少ない場合は、会議を開いて交換する.定格値(RHEL 4.0):

cat /proc/meminfo


交換は、システムで使用される物理ページの数を3つの方法で減らす:1.バッファとページcacheのサイズを減らす.システムVタイプのメモリページをスワップ、3.ページを置換または破棄します.(Applicationが使用するメモリページ、つまり物理メモリが不足しています).実際,swapを少量使用することはシステム性能に影響を及ぼすのではないか.
次はbuffersとcachedの違いです.
buffersとは、ファイルシステムのmetadataおよびtracking in-flight pagesのみを記録するブロックデバイスのバッファサイズを指す.cachedはファイルをバッファリングするために使用されます.つまりbuffersは、ディレクトリに何が含まれているのか、権限などを格納するために使用されます.cachedは私たちが開いたファイルを直接記憶するために使用されます.もし彼が本当に有効かどうかを知りたいなら、2回目のコマンド#man Xを前後して実行してみると、2回目のスタートのスピードがずっと速いことが明らかになります.実験:何の応用もない機械でやると明らかになる.実験は一度しかできないことを覚えています.もっとやりたいならファイル名を変えてください.
#free
#man X
#free
#man X
#free

freeを前後して比較してbuffersのサイズを表示することができます.もう一つの実験:
#free
#ls /dev
#free

2つの大きさを比較してみると、もちろんこのbuffersはいつでも増加していますが、lsが過ぎると増加速度が速くなります.これがbuffers/chachedの違いです.
Linuxは、一時的に使用しないメモリをファイルとデータキャッシュとして使用するため、システムのパフォーマンスを向上させます.これらのメモリが必要な場合、システムは自動的に解放されます(windowsのように、空きメモリがたくさんあっても、ディスクのpagefilesにアクセスします).freeコマンドを使用して、usedの値からbufferとcacheの値を差し引くと、現在の実際のメモリが使用されます.--オペレーティングシステムにとってMemのパラメータです.buffers/cachedはいずれも使用されているためfreeは16936しかないと考えられている.
アプリケーションにとって(-/+buffers/cach).buffers/cachedは、buffer/cachedがプログラム実行のパフォーマンスを向上させるため、プログラムがメモリを使用するとbuffer/cachedがすぐに使用されるため、同等に使用できます.したがって、アプリケーションで見ると(-/+buffers/cache)のfreeとusedが主である.だから私たちはこれを見ればいいです.また常識を教えてあげましょう.Linuxはディスクとメモリのアクセス効率を向上させるために、dentryをキャッシュ(VFS用、ファイルパス名からinodeへの変換を加速)するほか、Buffer CacheとPage Cacheの2つの主要なCache方式を採用しています.前者はディスクブロックの読み書き、後者はファイルinodeの読み書きである.これらのCacheは、read、write、getdentsなどのI/Oシステム呼び出しの時間を効率的に短縮することができます.メモリは持ってきたもので、持ってきたものではないことを覚えておいてください.Windowsのように、あなたの実際の物理メモリがいくらあっても、彼はハードディスクを持ってファイルを交換して読みます.これがwindowsが仮想空間の不足を提示する理由である.どんなに退屈なことか考えてみてください.メモリがまだ大部分あるとき、ハードディスク(HDD)のスペースの一部をメモリとして取り出します.ハードディスク(HDD)がメモリより速いわけがありません.だから私たちはlinuxを見て、swapの交換空間を使わない限り、自分のメモリが少なすぎることを心配する必要はありません.swapが多く使われている場合は、物理メモリを追加することを考慮する必要があります.これもlinuxがメモリが十分かどうかを見る基準ですよ.