300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux内存占用过高怎么解决 centos7内存占用过高处理方法

linux内存占用过高怎么解决 centos7内存占用过高处理方法

时间:2020-11-02 12:36:42

相关推荐

linux内存占用过高怎么解决 centos7内存占用过高处理方法

博士有几台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-lt200];then

sync

echo3>/proc/sys/vm/drop_caches

fi

可以按照自己的生产环境,进行修改脚本,上面脚本中的sync指令作用是将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

使用方法sh./mem.sh

加入crontab定时任务,每分钟检查一次*****/bin/sh/root/mem.sh>/dev/null2>&1

关于drop_caches文件数值的说明,博友们有兴趣可以研究一下:0-不释放

1-释放页缓存

2-释放dentries和inodes

3-释放所有缓存

查看内存使用的正确方法

运行命令free[root@localhost~]#free-hm

totalusedfreesharedbuff/cacheavailable

Mem:3.7G3.2G216M183M270M142M

Swap:3.0G200M2.8G

详解:

1、total:总的物理内存

2、used:系统使用的内存,包括buff+cache。并非系统真正使用的内存。系统真正使用的内存=used-buff/cache

3、free:空闲的内存,系统未使用的内存,并不是系统启动应用程序可以真正使用的内存。

4、shared:共享内存

5、buff/cache:磁盘缓存的大小

6、available:在旧版free中,没有这个选项。这个选项指的是,系统启动程序时可以利用的内存,当这个选项很小或者不够启动程序所需的内存,会提示系统内存不足,无法启动,此时就需要处理问题,是物理内存真的不足,还是清理系统缓存。

这时再次查看drop_caches默认值已经变成3了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。