时间:2020年04月09日 | 作者 : liuhui | 分类 : Linux | 浏览: 6265次 | 评论 0 人
阿里云限量代金券 | 此广告位出租25元/月 |
博士有几台frps服务器都出现了内存占用过高的现象,然后会出现CPU使用率飙升,网上找到这个清理buff/cache缓存脚本,希望有效果。
博士在找到这个脚本的时候也学到了一个关于Linux的知识点,内存用满并不是说不好,这恰恰是Linux内存管理的一个优秀特性,在这方面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。
运行该脚本之前我们先执行这个命令cat /proc/sys/vm/drop_caches
我们发现drop_caches默认值为0
创建mem.sh脚本
#!/bin/bash exec &>> /var/log/mem.log Free=`free -m|awk 'NR==2 {print $4}'` if [ $Free -lt 200 ];then sync echo 3 > /proc/sys/vm/drop_caches fi
可以按照自己的生产环境,进行修改脚本,上面脚本中的sync指令作用是将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。
使用方法
sh ./mem.sh
加入crontab定时任务,每分钟检查一次
* * * * * /bin/sh /root/mem.sh >/dev/null 2>&1
关于drop_caches文件数值的说明,博友们有兴趣可以研究一下:
0-不释放 1-释放页缓存 2-释放dentries和inodes 3-释放所有缓存
查看内存使用的正确方法
运行命令free
[root@localhost ~]# free -hm total used free shared buff/cache available Mem: 3.7G 3.2G 216M 183M 270M 142M Swap: 3.0G 200M 2.8G
详解:
1、total:总的物理内存
2、used:系统使用的内存,包括buff+cache。并非系统真正使用的内存。系统真正使用的内存=used-buff/cache
3、free:空闲的内存,系统未使用的内存,并不是系统启动应用程序可以真正使用的内存。
4、shared:共享内存
5、buff/cache:磁盘缓存的大小
6、available:在旧版free中,没有这个选项。这个选项指的是,系统启动程序时可以利用的内存,当这个选项很小或者不够启动程序所需的内存,会提示系统内存不足,无法启动,此时就需要处理问题,是物理内存真的不足,还是清理系统缓存。
这时再次查看drop_caches默认值已经变成3了。
推荐您阅读更多有关于“”的文章
Powered By Z-Blogphp
分享:
支付宝
微信