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.2 GB。
冲洗后1小时cat / proc / meminfo:
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
答案 0 :(得分:1)
为了清楚起见,缓存列是已使用的子集。进程使用的内存可以单独使用列,也可以使用已使用和缓存的列(如果缓存了该内存)。缓存只是一个关于缓存了多少已用内存的报告。
缓存中的内存项不是免费的,但如果您需要空间,它们将从缓存中删除并替换为更频繁请求的内容。但是,你的操作系统很聪明,应该将经常使用的块保留在缓存中 - 不要试图超越你的内存管理 - 你总体上会做得更差。
这些相同项目继续加载到缓存中的原因是它们经常需要它们。在需要时不在缓存项目中,仍然会占用该内存空间。