Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache
如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi会非常小。
Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。也可以用动释放,释放的时候需要对cache中的数据跟对应文件中的数据一致。
释放的方式有下以几种
一般情况下释放pagecache就可以了。这样可以写一个sh脚本来在服务器空闲的时候定时执行
使用crontab来设置定时任务,如每天4点开始清理
本文参考: https://www.jianshu.com/p/9b9f4917fb2e
Linux系统buff/cache 中缓存数据占用内存过高,定时清理buff/cache ,释放系统内存
root权限创建脚本文件:
cat clean_cache.sh
设置定时任务,每隔2小时运行一次:
crontab -e
0 */2 * * * sh /usr/local/bin/clean_cache.sh
1 先写一个脚本存为一个文件,比如 clearmem.sh#!/bin/bash
sync
echo 3 >/proc/sys/vm/drop_caches
2 然后给这个脚本加一个可执行权限
chmod +x chearmem.sh
3 先试试运行一下看看内存释放没有,free -m
sh clearmem.sh
free -m
4 最后创建一个计划任务
crontab -e
加如下内容,比如每天1点清理一次
00 1 * * * sh /xxx/路径/clearmem.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)