linux與windows不同,會存在快取記憶體,通常叫做cache memory。有些時候你會發現沒有什麼程式在執行,但是使用top或free命令看到可用記憶體會很少,此時檢視linux系統 /proc/meminfo 檔案,會發現有一項 cached memory:
# >> cat /proc/meminfo
memtotal: 16414004 kb
memfree: 10278960 kb
buffers: 65588 kb
cached: 1273692 kb
swapcached: 15552 kb
active: 5349400 kb
inactive: 597340 kb
hightotal: 0 kb
highfree: 0 kb
lowtotal: 16414004 kb
lowfree: 10278960 kb
swaptotal: 33551744 kb
swapfree: 33315872 kb
dirty: 64 kb
writeback: 0 kb
slab: 134212 kb
commitlimit: 41758744 kb
committed_as: 5048776 kb
pagetables: 14784 kb
vmalloctotal: 536870911 kb
vmallocused: 279436 kb
vmallocchunk: 536590975 kb
hugepages_total: 0
hugepages_free: 0
hugepagesize: 2048 kb
什麼是cache memory(快取記憶體):
當你讀寫檔案的時候,linux核心為了提高讀寫效率與速度,會將檔案在記憶體中進行快取,這部分記憶體就是cache memory(快取記憶體)。即使你的程式執行結束後,cache memory也不會自動釋放。這就會導致你在linux系統中程式頻繁讀寫檔案後,你會發現可用物理記憶體會很少。
其實這快取記憶體(cache memory)在你需要使用記憶體的時候會自動釋放,所以你不必擔心沒有記憶體可用。如果你希望手動去釋放cache memory(快取記憶體)的話也是有辦法的。
釋放cache memory(快取記憶體):
用下面的命令可以釋放cache memory:
echo 3 > /proc/sys/vm/drop_caches
Linux記憶體機制 Buffer和Cache
今天twitter上關於buffer和cache討論得蠻火的,被各種說話一攪和,有點亂了,就乾脆整理一下。首先從翻譯上,buffer應該翻譯為 緩衝 cache應該翻譯為 快取 兩個完全不是乙個東西。在硬體這一層看,buffer應該為記憶體,cache為cpu整合的告訴快取。buffer為了讓不同速...
Linux下跑程式,防止命令終斷(斷網,斷電)
有時候我們在伺服器上跑程式,會發現當我們離開視窗時,正在執行的程式中斷了,這讓人非常鬱悶。下面介紹防止程式中斷的方法 新建乙個名為yourname的screen視窗 screen s yourname 大寫s 然後就可以在該介面中執行你的 命令 和在伺服器視窗執行一樣。暫時離開screen sess...
linux 記憶體管理 紅黑樹(未讀)
2009 12 11 10 02 佚名 51cto 字型大小 t t 很多的人都開始學習linux作業系統。當我們學習linux時,會遇到很多的問題。最近看linux記憶體管理,看到紅黑樹這一部分甚為頭大,於是了解了一下紅黑樹的基本知識。詳細講解一下linux記憶體管理。ad wot2014 使用者...