當(dāng)在Linux下頻繁存取文件后,物理內(nèi)存會(huì)很快被用光,當(dāng)程序結(jié)束后掸屡,內(nèi)存不會(huì)被正常釋放,而是一直作為caching
因此我們很有必要手動(dòng)清理系統(tǒng)緩存釋放內(nèi)存然评。
我們?cè)谇謇砭彺媲皯?yīng)該先仅财,因?yàn)橄到y(tǒng)在操作的過程當(dāng)中,會(huì)把你的操作到的文件資料先保存到buffer中去碗淌,因?yàn)榕履阍诓僮鞯倪^程中因?yàn)閿嚯姷仍蜻z失數(shù)據(jù)盏求,所以在你操作過程中會(huì)把文件資料先緩存。
所以我們?cè)谇謇砭彺嫦纫劝裝uffe中的數(shù)據(jù)先寫入到硬盤中亿眠,sync命令
sync
手動(dòng)執(zhí)行sync命令(描述:sync 命令運(yùn)行 sync 子例程碎罚。如果必須停止系統(tǒng),則運(yùn)行sync 命令以確保文件系統(tǒng)的完整性纳像。sync 命令將所有未寫的系統(tǒng)緩沖區(qū)寫到磁盤中荆烈,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件)
最后竟趾,輸入手動(dòng)釋放內(nèi)存的命令
echo 3 > /proc/sys/vm/drop_caches
drop_caches的值可以是0-3之間的數(shù)字耙考,代表不同的含義:
0:不釋放(系統(tǒng)默認(rèn)值)
1:釋放頁緩存
2:釋放dentries和inodes
3:釋放所有緩存
看內(nèi)存是否已經(jīng)釋放掉了。
free -h
total:總物理內(nèi)存
used:已使用內(nèi)存潭兽,一般情況這個(gè)值會(huì)比較大,因?yàn)檫@個(gè)值包括了cache+應(yīng)用程序使用的內(nèi)存
free:完全未被使用的內(nèi)存
shared:應(yīng)用程序共享內(nèi)存
buffers:緩存斗遏,主要用于目錄方面,inode值等(ls大目錄可看到這個(gè)值增加)
cached:緩存山卦,用于已打開的文件