Linux系統釋放cache記憶體
先看看free命令結果:
# free
total used free shared buffers cached
Mem: 1035108 500168 534940 0 5496 139120
-/+ buffers/cache: 355552 679556
Swap: 2096472 451984 1644488
第二行(mem):
total:總計實體記憶體的大小.
used:已使用多大.
free:可用有多少.
Shared:多個程式共享的記憶體總額.
Buffers/cached:磁碟快取的大小.
第三行(-/ buffers/cached):
used:已使用多大.
free:可用有多少.
第二行(mem)的used/free與第三行(-/ buffers/cache) used/free的區別.
這兩個的區別在於使用的角度來看,第二行是從OS的角度來看,對於OS, buffers/cached 都是屬於被使用,它的可用記憶體是8908KB,已用記憶體是377116KB,其中包括,核心(OS)使用 Application(X, oracle,etc)使用的 buffers cached.
第三行所指的是從應用程式角度來看,對於應用程式來說,buffers/cached 是等於可用的,buffer/cached是為了提高檔案讀取的效能,當應用程式需再用到記憶體的時候,buffer/cached會很快地被回收.
從應用程式的角度來說, 可用記憶體 = 系統free memory+ buffers+ cached.
如上例: 679556 = 534940 + 5496 + 139120
如何釋放記憶體呢?
透過調整/proc/sys/vm/drop_caches來釋放記憶體. 操作如下:
[root@server test]# cat /proc/sys/vm/drop_caches --/proc/sys/vm/drop_caches的值,預設為0
0
[root@server test]# sync
手動執行sync命令(描述:sync 命令執行 sync 子例程.假如停止系統,則執行 sync 命令以確保文件系統的完整性.sync 命令將任何未寫的系統緩衝區寫到磁碟中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫對映文件)
[root@server test]# echo 3 > /proc/sys/vm/drop_caches
[root@server test]# cat /proc/sys/vm/drop_caches --將/proc/sys/vm/drop_caches值設為3
3
[root@server test]# free -m --檢視釋放的記憶體情況
其他參考:
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become free.
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync(8) first.
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23682146/viewspace-1055823/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux釋放cache記憶體Linux記憶體
- Linux下如何釋放cache記憶體Linux記憶體
- 如何釋放linux cache佔用的記憶體Linux記憶體
- Linux系統手動釋放記憶體快取Linux記憶體快取
- 手工釋放linux記憶體——/proc/sys/vm/drop_cacheLinux記憶體
- linux釋放記憶體Linux記憶體
- Linux釋放記憶體及手動釋放Oracle共享記憶體段Linux記憶體Oracle
- 轉 linux 記憶體釋放Linux記憶體
- linux 記憶體釋放命令Linux記憶體
- 手動釋放linux下cache所佔用的實體記憶體Linux記憶體
- Linux之 手動釋放記憶體Linux記憶體
- Linux手動釋放快取記憶體Linux快取記憶體
- vector 的記憶體釋放記憶體
- XCode釋放記憶體XCode記憶體
- vector 避免記憶體頻繁分配釋放與手動釋放vector記憶體記憶體
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- 記錄一下,linux釋放記憶體的方法Linux記憶體
- Linux作業系統中記憶體buffer和cache的區別Linux作業系統記憶體
- win10如何設定自動釋放記憶體_win10怎麼設定自動清理系統垃圾釋放記憶體Win10記憶體
- Linux手動釋放CacheLinux
- C# 垃圾回收釋放記憶體C#記憶體
- 正確釋放Vector的記憶體記憶體
- FireFox記憶體自動釋放Firefox記憶體
- Linux系統記憶體使用的體會及命令解釋(轉)Linux記憶體
- Linux作業系統中記憶體buffer和cache的區別(轉載)Linux作業系統記憶體
- Linux下清理記憶體和Cache方法Linux記憶體
- Linux 記憶體管理:Kmem_cache_initLinux記憶體
- golang 釋放記憶體機制的探索Golang記憶體
- vector clear() 方法 記憶體釋放問題記憶體
- C/C++記憶體分配以及釋放C++記憶體
- mongodb釋放記憶體-切換日誌MongoDB記憶體
- Linux記憶體子系統——Locking Pages(記憶體鎖定)Linux記憶體
- 如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體Linux記憶體
- Linux核心記憶體管子系統分析Linux記憶體
- Linux AS 使用記憶體檔案系統Linux記憶體
- Redis刪除大量key後,佔用的系統記憶體卻沒有釋放?Redis記憶體
- 手工釋放linux記憶體——/proc/sys/vm/drop_caches(轉載)Linux記憶體