咱們在使用
free -h
查看系統內存的時候,有時間會發現buff/cache
很高html
> free -h
複製代碼
available 表示應用程序能夠申請到的內存node
buff(Buffer Cache)是一種I/O緩存,用於內存和硬盤的緩衝,是io設備的讀寫緩衝區。根據磁盤的讀寫設計的,把分散的寫操做集中進行,減小磁盤碎片和硬盤的反覆尋道,從而提升系統性能。linux
cache(Page Cache)是一種高速緩存,用於CPU和內存之間的緩衝 ,是文件系統的cache。vim
把讀取過的數據保存起來,從新讀取時若命中(找到須要的數據)就不要去讀硬盤了,若沒有命中就讀硬盤。其中的數據會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把再也不讀的內容不斷日後排,直至從中刪除。緩存
它們都是佔用內存。二者都是RAM中的數據。簡單來講,buff是即將要被寫入磁盤的,而cache是被從磁盤中讀出來的。bash
目前進程正在實際被使用的內存的計算方式爲
used-buff/cache
,經過釋放buff/cache內存後,咱們還可使用的內存量free+buff/cache
。一般咱們在頻繁存取文件後,會致使buff/cache的佔用量增高。微信
buff/cache
> sync
> echo 1 > /proc/sys/vm/drop_caches
> echo 2 > /proc/sys/vm/drop_caches
> echo 3 > /proc/sys/vm/drop_caches
複製代碼
/proc/sys/vm/drop_caches的值,默認爲0markdown
> vim clean.sh
#!/bin/bash#每兩小時清除一次緩存
echo "開始清除緩存"
sync;sync;sync #寫入硬盤,防止數據丟失
sleep 20#延遲20秒
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
> chmod +x clean.sh
> crontab -e
# 每兩小時執行一次
0 */2 * * * /opt/clean.sh
複製代碼
原文連接:rumenz.com/rumenbiji/l… 微信公衆號:入門小站oop