私はLinuxとcachdメモリについて linuxatemyram で読みましたが、サーバーの負荷が低い場合でも、キャッシュされたメモリを解放する代わりにスワップを使用し始めます。サーバーを遅くします。
今でも、サーバーの負荷がload average: 0.00, 0.00, 0.00
85%以上のメモリがスワップに使用されている間に、一部のメモリがスワップされます。
this や this などの同様の質問を読みましたが、スワッピングが発生してはならないことが記載されています。また、3週間前までは、メモリのごく一部がキャッシュによって使用されていたため、キャッシュされたメモリに影響を与えると思われるものは何も変更していませんでした。
この値で問題ないかどうか、または問題があるかどうかを教えてください。
ありがとう!
[root@web01 ~]# cat /proc/meminfo
MemTotal: 5183448 kB
MemFree: 249260 kB
Buffers: 330848 kB
Cached: 4317828 kB
SwapCached: 92 kB
Active: 2883596 kB
Inactive: 1882468 kB
HighTotal: 4315324 kB
HighFree: 63516 kB
LowTotal: 868124 kB
LowFree: 185744 kB
SwapTotal: 5799928 kB
SwapFree: 5799796 kB
Dirty: 368 kB
Writeback: 0 kB
AnonPages: 117356 kB
Mapped: 21076 kB
Slab: 152668 kB
PageTables: 4184 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 8391652 kB
Committed_AS: 268708 kB
VmallocTotal: 116728 kB
VmallocUsed: 5404 kB
VmallocChunk: 110964 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
[root@web01 ~]# free
total used free shared buffers cached
Mem: 5183448 4932936 250512 0 330840 4317340
-/+ buffers/cache: 284756 4898692
Swap: 5799928 132 5799796
[root@web01 ~]# uname -a
Linux web01 2.6.18-164.15.1.el5PAE #1 SMP Wed Mar 17 12:14:29 EDT 2010 i686 i686 i386 GNU/Linux
番号!あなたの例の投稿では、スワップには事実上何も使用されていません。偶発的で簡単なスワップの92k(または2番目のスクリーンショットでは132k)を使用しています。
キャッシュメモリは、ディスク上のブロックの内容で満たされた空きメモリです。他のスペースが必要になるとすぐに空になります。これはパフォーマンスを向上させる良いことです。
あなたの質問を サーバーがスワップパーティションの使用を拒否する と比較してください。
サーバーがキャッシュを解放する代わりにデータをスワップする理由については、キャッシュされたデータがメモリに保存されているデータよりもはるかに多く読み取られていた可能性があります。プログラムには、めったにアクセスしないページがある場合があります。そのスペースはキャッシングによってよりよく利用されます。
Vm.swappiness設定(/ procを通じてライブでも変更可能)はそれに影響しますが、特にスワップイン/アウトカウンターを使用して、調整する前に何が起こっているのかをよく見てください。 sar
とatop
は、このための便利なツールです。
vm.swappiness = 0
を/etc/sysctl.conf
に追加してsysctl -p
を実行すると、ユーザーアプリケーションがカーネルからメモリ領域を必要とする場合に、ファイルキャッシュが占有しているメモリをより積極的に解放するようになります。