RSS订阅专注X86/ARM架构技术
博客交流QQ群693563350 赞助本站
你现在的位置:网站首页 / Linux / 正文内容

centos7内存占用过高处理方法

4870 Linux | 2020年04月09日

博士有几台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

[[email protected] ~]# 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了。

上一篇:windows下的frpc/frps进程守护脚本

下一篇:NodeQuery服务器监控平台注册使用及自建监控页面教程

猜你喜欢

网站分类
FRP包教会服务
先领券再购物更优惠
友情链接
Title - Artist
0:00

    分享:

    支付宝

    微信