手動釋放Linux服務器內存
在服務器運行過程中,使用free -m查看服務器內存時,經常會發現free值很小,有些同學就會很緊張,總想採取一些措施,使得free值看起來高一點,心裏就比較爽一點。其實,個人覺得這完全是圖一時之快,沒什麼實質性用途。
一、大衆釋放內存方法
1. 首先使用free -m查看剩餘內存
- linux-8v2i:~ # free -m
- total used free shared buffers cached
- Mem: 3952 2773 178 0 130 1097
- -/+ buffers/cache: 1545 2406
- Swap: 2055 0 2055
2. 執行sync命令
- linux-8v2i:~ # sync
3. 修改/proc/sys/vm/drop_caches
- echo 3 > /proc/sys/vm/drop_caches
To free pagecache, use echo 1 > /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 first.
4.再使用free -m查看剩餘內存,情況如下:
- linux-8v2i:~ # free -m
- total used free shared buffers cached
- Mem: 3952 1773 2325 0 0 80
- -/+ buffers/cache: 1545 2406
- Swap: 2055 0 2055
二、Linux內存分析
1. 首先對free -m查看結果進行分析
- linux-8v2i:~ # free -m
- total used free shared buffers cached
- Mem: 3952 2773 178 0 130 1097
- -/+ buffers/cache: 1545 2406
- Swap: 2055 0 2055
- total:總物理內存
- used:已使用內存
- free:完全未被使用的內存
- shared:應用程序共享內存
- buffers:緩存,主要用於目錄方面,inode值等
- cached:緩存,用於已打開的文件
- -buffers/cache:應用程序使用的內存大小,used減去緩存值
- +buffers/cache:所有可供應用程序使用的內存大小,free加上緩存值
- total = used + free
- -buffers/cache=used-buffers-cached,這個是應用程序真實使用的內存大小
- +buffers/cache=free+buffers+cached,這個是服務器真實還可利用的內存大小