4

Linuxサーバーのキャッシュされたメモリは「無料」ですか。つまり、他のアプリケーションで自由に使用できますか?

LinuxのメモリはWindowsとは異なる方法で使用されていることを知っています...

しかし、私には数MBの空きメモリと1.2GBのキャッシュメモリしかありません。

             total       used       free     shared    buffers     cached
Mem:          3945       3893         51          0         28       1216
-/+ buffers/cache:       2648       1296
Swap:         3895        857       3038

そのチャッチメモリは「利用不可」のように使用されていますか?

定期的にキャッシュを削除するのは理にかなっていますか?フラッシュした直後に私は持っています:

             total       used       free     shared    buffers     cached
Mem:          3945       2820       1125          0          1        197
-/+ buffers/cache:       2621       1323
Swap:         3895        851       3044

1時間後、1.2GBのチャッチメモリを備えた古い状態に戻ります。

cat / proc / meminfoフラッシュの1時間後:

MemTotal:      4040048 kB
MemFree:         44636 kB
Buffers:         30172 kB
Cached:        1247868 kB
SwapCached:     137156 kB
Active:        3316940 kB
Inactive:       493920 kB
SwapTotal:     3989496 kB
SwapFree:      3101076 kB
Dirty:           25696 kB
Writeback:           0 kB
AnonPages:     2527784 kB
Mapped:         219676 kB
Slab:            52356 kB
SReclaimable:    21240 kB
SUnreclaim:      31116 kB
PageTables:      96668 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   6009520 kB
Committed_AS:  6223392 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     18852 kB
VmallocChunk: 34359719439 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
4

1 に答える 1

1

明確にするために、キャッシュされた列は使用済みのサブセットです。プロセスによって使用されているメモリは、使用済み列のみ、またはそのメモリの一部がキャッシュされている場合は使用済み列とキャッシュ列の両方に存在できます。キャッシュは、使用されているメモリのどれだけがキャッシュされているかに関する単なるレポートです。

キャッシュ内のメモリアイテムは空いていませんが、スペースが必要な場合はキャッシュから削除され、より頻繁に要求されるものに置き換えられます。ただし、OSは、頻繁に使用されるブロックをキャッシュに保持するのに十分なほどスマートです。メモリ管理の裏をかくことを試みないでください。おそらく、全体的に悪化します。

それらの同じアイテムがキャッシュにロードされ続ける理由は、それらが頻繁に必要になるためです。必要なときにキャッシュアイテムにない場合でも、そのメモリスペースを使い果たします。

于 2012-11-01T16:31:51.740 に答える