關於linux低端內存
前幾天服務器程序發現一個問題。 當對一些文件做了一個磁盤上的cache功能(把一些常用的結果直接保存到磁盤上,避免每次重復計算), 操作系統的/proc/meminfo裡LowFree內存迅速減少, 基本上接近0。 但是程序一切正常,而且因為緩存的原因,CPU占用率和負載都大大降低,效果很明顯。
www.2cto.com
後來去查了一下linux關於/proc/meminfo裡 LowFree , LowTotal的一些文檔是這樣的:
LowTotal: The total amount of non-highmem memory.
LowFree: The amount of free memory of the low memory region. This is the memory the kernel can address directly. All kernel datastructures need to go into low memory
也就是說低端內存是內核能夠直接尋址的內存。在32位操作系統上, LowFree就是內核所使用的1G內存空間。而在64位機器上,LowTotal和LowFree實際上就等於MemTotal和MemFree。
我遇到的那個問題,實際上是因為使用了磁盤上的文件作為cache後, 操作系統把這部分文件放入內存中做了緩沖。所以LowFree內存降低。 當需要內存時,這部分作為文件緩沖的內存可以隨時釋放出來。所以沒有問題。