topコマンドの「キャッシュ」とは何ですか?


46

実行するとtop、次のようになります:

top - 09:10:52 up 18:37,  1 user,  load average: 1.56, 1.33, 1.15
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.6%sy,  1.0%ni, 92.5%id,  5.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  3045460k used,  1148844k free,        0k buffers
Swap:        0k total,        0k used,        0k free,  2256128k cached

部品を参照してください:2256128kキャッシュ?それはどういう意味ですか?

2つのプロバイダーの2つのVPSを比較していますが、この1つには常に大量(使用済みメモリーの70%)があり、他のVPSプロバイダーには常に0が表示されます。

回答:


15

キャッシュされる前のその数は、ファイルシステムのキャッシュバッファーによって使用されている物理メモリの量です。

それはだ、実際にはないライン:「スワップ」上にあるにもかかわらず、SWAPに関連します。

少し実験して答えを確認するには、次を試してください。

topを実行し、「cached」の値に注意してください。今すぐ実行

dd if=/dev/zero of=~/trick bs=1M count=128

もう一度topを実行すると、「cached」が128M増加したことに気付くでしょう。

ファイルを削除します

rm ~/trick

トップもう一度実行すると、あなたは、「キャッシュされた」で減少しているがわかります128M

Memの場合:

total = used + free そして

used = <all apps> + buffers + cached

(バッファは基本的にキャッシュのメタデータです)。UIを少し混乱させます。


とにかくこれに影響を与えることができます。たとえば、制限したり、完全に無効にしたりできますか?
KKK

2
なんでそんなことしたいの?どうする?ファイルシステムが物理メモリにキャッシュされる方法について。

ファイルシステムのほとんどはDBであり、DBには独自のキャッシュがあるため、この部分を何らかの方法で制限するのが良いと思います。
KKK

あなたはいくつかの検索でそれを行うことができますが、私はあなたに助言しません。これにより、th FSのパフォーマンスが制限されます

117

Linuxカーネルは、実行中のプログラムで必要でない限り、ディスクキャッシュに使用可能なメモリを使用します。

これは良いと見なされます。4 GBのRAMがあり、プログラムが1 GBのみを使用しているとします。他の3 GBは無駄になります。メモリーの25%しか使用していないことを知っているという「気持ちの良い」印象にもかかわらず、他の75%は未使用になるということです。そのため、カーネルはそれをファイルのキャッシュに使用し、パフォーマンスを大幅に改善します。自動です。古いオペレーティングシステムとは異なり、ディスクキャッシュに割り当てる量を決定したり、手動で構成したりする必要はありません。

「Linuxディスクキャッシュは非常に控えめです。スペアメモリを使用して、ディスクアクセス速度を大幅に向上させ、アプリケーションからメモリを奪うことはありません。

これは非常によくある質問であり、ウェブサイト全体がそれに専念しています。

http://www.linuxatemyram.com

Webサイトにはディスクキャッシュを空にする方法もあるため、いくつかのアプリケーションを実行して、キャッシュを有効にした場合の速度を確認できます。


4
答えは大好きですが、評判が悪いため、アップグレードできません(まだ)。ごめんなさい。
KKK

4
心配しないでください、私は助けてくれてうれしいです。情報が役立つことを願っています!
-roadmr

これは受け入れられた答えであるべきです。しかたがない 。。。:(
ankush981

間違いなく受け入れられる答えでなければなりません。linuxatemyramは素晴らしい情報です!
rafaelbattesti
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.