Linux 清理快取,定時清理快取指令碼

2021-09-21 00:25:57 字數 1480 閱讀 8901

檢視記憶體使用率

free -m | sed -n '2p' | awk ''

清理記憶體

sync

echo 1 > /proc/sys/vm/drop_caches

------------------

要達到釋放快取的目的,我們首先需要了解下關鍵的配置檔案/proc/sys/vm/drop_caches。這個檔案中記錄了快取釋放的引數,預設值為0,也就是不釋放快取。他的值可以為0~3之間的任意數字,代表著不同的含義:

0 – 不釋放

1 – 釋放頁快取

2 – 釋放dentries和inodes

3 – 釋放所有快取

--------------------- 

自動指令碼

#!/bin/bash

#系統分配的區總量

mem_total=`free -m | awk 'nr==2' | awk ''`

#當前剩餘的大小

mem_free=`free -m | awk 'nr==3' | awk ''`

#當前已使用的used大小

mem_used=`free -m | grep mem | awk ''`

if (($mem_used != 0)); then

#如果已被使用,則計算當前剩餘free所佔總量的百分比,用小數來表示,要在小數點前面補乙個整數字0

mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc`

data="$(date -d "today" +"%y-%m-%d-%h-%m") free percent is : $mem_per"

echo $data >> /var/log/mem_detect.log

#設定的告警值為20%(即使用超過80%的時候告警)。

mem_warn=0.20

#當前剩餘百分比與告警值進行比較(當大於告警值(即剩餘20%以上)時會返回1,小於(即剩餘不足20%)時會返回0 )

mem_now=`expr $mem_per \> $mem_warn`

#如果當前使用超過80%(即剩餘小於20%,上面的返回值等於0),釋放記憶體

if (($mem_now == 0)); then

sync

echo 1 > /proc/sys/vm/drop_caches

echo 2 > /proc/sys/vm/drop_caches

echo 3 > /proc/sys/vm/drop_caches

#將release memory ok !寫入temp資料夾的memstat_日期.log日誌中

echo "--->release memory ok ! " >>temp/memstat_$(date +%y%m%d_%h%m%s).log fi

fi

Linux 清理快取

1.free m 命令可以檢視記憶體使用情況 2.sync 因為系統在操作的過程當中,會把你的操作到的檔案資料先儲存到buffer中去,因為怕你在操作的過程中因為斷電等原因遺失資料,所以在你操作過程中會把檔案資料先快取。3.echo 3 proc sys vm drop caches 是清理所有快取...

ElasticSearch定時清理快取索引

1.背景 由於es的日誌索引每天都在增長,很快快取就吃不消了,需要定期清理一下過期不用的索引,在此使用定期刪除索引的方法 2.指令碼 delete es indices over 15 day.sh bin bash 刪除早於15天的es集群的索引 function delete indices 擷...

linux清理記憶體 快取

linux下清理快取,以釋放記憶體 系統環境 cent os 5.4 x64 今天檢視開發使用的機器,記憶體使用了11g,絕大部門都是被快取了,根據linux記憶體可使用的計算方法 可用記憶體 free buffers cached,那麼這台伺服器可用記憶體約為10.7g,swap占用非常 明目前物...