Linux服务器上的缓存内存是否“免费”?

时间:2012-11-01 16:26:40

标签: linux apache memory ubuntu

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

1 个答案:

答案 0 :(得分:1)

为了清楚起见,缓存列是已使用的子集。进程使用的内存可以单独使用列,也可以使用已使用和缓存的列(如果缓存了该内存)。缓存只是一个关于缓存了多少已用内存的报告。

缓存中的内存项不是免费的,但如果您需要空间,它们将从缓存中删除并替换为更频繁请求的内容。但是,你的操作系统很聪明,应该将经常使用的块保留在缓存中 - 不要试图超越你的内存管理 - 你总体上会做得更差。

这些相同项目继续加载到缓存中的原因是它们经常需要它们。在需要时不在缓存项目中,仍然会占用该内存空间。