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

centos修改系统可用内存_centos7内存占用过高处理方法相关推荐

  1. centos修改系统可用内存_Centos7 因内存 可用大小不足,被killed的解决办法

    Linux的内存分配采取的是一种更加积极的分配策略,它假设应用申请了内存空间后并不会立即去使用它,所以允许一定量的超售,当应用真的需要使用它的时候,操作系统可能已经通过回收了其他应用的内存空间而变得有 ...

  2. centos修改系统可用内存_centos7开启交换内存

    在linux系统中输入top命令,在输出的 MiB Swap: 那行就是交换内存的信息了. centos7开启交换分区的交换内存,在系统物理内存不够用的时候,系统使用部分硬盘的空间供系统内存使用.如果 ...

  3. C#net6实现Linux系统下修改IP地址、修改系统时间、获取内存信息、获取磁盘信息、重启系统

    C#net6实现Linux系统下修改IP地址.修改系统时间.获取内存信息.获取磁盘信息.重启系统 背景 项目背景 实现思路 代码实现 背景 随着微软.net core的出现,C#程序实现跨平台不在困难 ...

  4. Linux系统内存占用过高排查方法

    以下以Ubuntu系统为例,内存占用过高可能是因为某个进程或程序占用了过多的内存,您可以按照以下步骤进行排查: 以上是一些基本的排查步骤,它们可以帮助您确定内存占用过高的原因,并采取相应的措施解决问题 ...

  5. Spring cloud开发内存占用过高解决方法

    https://blog.csdn.net/wanhuiguizong/article/details/79289986 版权声明:本文为博主原创文章,转载请声明文章来源和原文链接. https:// ...

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

    博士有几台frps服务器都出现了内存占用过高的现象,然后会出现CPU使用率飙升,网上找到这个清理buff/cache缓存脚本,希望有效果. 博士在找到这个脚本的时候也学到了一个关于Linux的知识点, ...

  7. svchost占用内存过高_是什么导致你的Java服务器内存和CPU占用过高呢

    一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...

  8. java 内存很高_Java服务器内存和CPU占用过高的原因

    一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...

  9. 电脑内存占用过高怎么办 电脑内存占用过高解决方法

    电脑内存占用过高怎么办?1,点击开始按钮,在搜索框中,输入服务,在弹出的搜索结中,点击打开服务 2,这里有很系统自动加载的一些服务,有些服务我们是用不到的,但系统会自动加载,占用不少内存,我们可以把一 ...

最新文章

  1. HDU 5411 CRB and Puzzle (2015年多校比赛第10场)
  2. CentOS下MongoDB的升级
  3. windows启动minio bat脚本编写示例
  4. vim 批量注释代码
  5. 主题:Centos6.4安装JDK
  6. 本地连接虚拟机 Oracle数据库 报ORA-12541:TNS:no listener
  7. 当Grid的数据源是View时,如何使用PeopleSoft自带的Save Function?
  8. python数据结构之栈
  9. Java——Socket通信原理
  10. java中string类相等_Java中String类的常见面试题
  11. 两个可用的ntp服务器地址
  12. 【论文解读】EMNLP2019-多粒度自注意力机制
  13. Web API路由与动作(三)
  14. 关于dev c++z中文乱码的问题
  15. FastDFS分布文件系统Java客户端使用
  16. ArcGIS Engine开发的汉化小技巧-来自arcchen和记忆De残骸
  17. js 弹窗中写html代码,简单了解JavaScript弹窗实现代码
  18. 腾讯云认证证书——云计算行业的敲门砖
  19. Repeated column in mapping for entity
  20. 【解题报告】2021CCPC东北四省赛

热门文章

  1. ProcessingJoy —— 炸裂的心 ♥【JAVA】
  2. VMware Workstation创建Windows 11(21H2)虚拟机
  3. ubuntu20.04图标突然变大(分辨率改变)解决方法
  4. word文档打开时出现错误提示是什么原因
  5. aac音频格式怎么转化为mp3
  6. 一个运营的自我修养:初级运营需要了解的书籍、网站、工具
  7. prepareStatement用法
  8. 程序员搞笑对联_【搞笑对联】程序员春节贴什么对联比较好?
  9. 前辉瑞普强中国区首席运营官黄海出任菲吉乐科全球首席执行官
  10. VideoCap Pro ActiveX控件,视频捕获和图像处理