2012-11-01 86 views
3

Linux服務器上的緩存內容是否爲「免費」,即免費供其他應用程序使用?Linux服務器上的「free」緩存內存?

我知道,Linux內存使用不同於在Windows ...

但我只可用內存和緩存內存的1.2GB幾MB:

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

是這樣像「不可用」一樣使用chached內存?

定期刪除緩存有意義嗎?沖洗後我有:

   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的chached內存。

執行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 
+0

這屬於服務器故障 – StingyJack

+0

是的,這是........ –

回答

1

只是要清楚,緩存列是使用一個子集。進程正在使用的內存可以位於已使用的列中,也可以位於已使用和已緩存的列中(如果該內存已被緩存)。緩存只是一份關於已使用內存緩存的報告。

緩存中的內存項目不是免費的,但如果您需要空間,它們將從緩存中刪除,並替換爲更頻繁請求的內容。但是,您的操作系統足夠聰明,可以將常用塊保存在緩存中 - 不要試圖超越您的內存管理 - 您的整體情況可能會更糟糕。

這些相同項目不斷加載到緩存中的原因是它們經常需要。在需要時不在緩存項目中,仍然佔用該內存空間。

+1

等什麼,我看了錯誤的問題?你在那裏談論什麼電子郵件? - 看看我的建議編輯 –

+0

你的編輯被一些快速射手拒絕。修復它(我希望)。 – Thilo

+0

@Martin是的,1.2GB不是'未被使用',因爲它在高速緩存中 - 它仍然被頻繁使用以保持在緩存中。只是要清楚......緩存的內存是「已用」內存的子集。這些東西正在使用,它也只是在緩存中。釋放內存(進程完成等)會減少Used列。從緩存列中減去的任何內存也將被緩存。 – Ray