當linux頻繁讀取文件后,物理內存會很快被用完,當程序結束后,內存不會被正常釋放,而是一直caching,因此有必要手動清理系統緩存釋放內存。
sync
操作系統在運行過程中,會把訪問到的文件放到buffer中。為了避免斷電,等故障造成數據丟失,我們需要把buffer中的緩存數據寫入到磁盤
> sync;sync;sync
手動執行sync命令(描述:sync 命令運行 sync 子例程。如果必須停止系統,則運行sync 命令以確保文件系統的完整性。sync 命令將所有未寫的系統緩沖區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件
手動釋放內存的命令
> echo 3>/proc/sys/vm/drop_caches
drop_caches的值可以是0-3之間的數字,代表不同的含義:
- 0:不釋放(系統默認值)
- 1:釋放頁緩存
- 2:釋放dentries和inodes
查看內存
> free -h
total——總物理內存
used——已使用內存,一般情況這個值會比較大,因為這個值包括了cache+應用程序使用的內存
free——完全未被使用的內存
shared——應用程序共享內存
buffers——緩存,主要用於目錄方面,inode值等(ls大目錄可看到這個值增加)
cached——緩存,用於已打開的文件
恢復默認設置
緩存可以提升系統的運行效率,如果發現系統內存經常不夠用,應該考慮添加內存,而不是經常清理
> echo 0>/proc/sys/vm/drop_caches
原文鏈接:https://rumenz.com/rumenbiji/linux_drop_caches.html
微信公眾號:入門小站