自动化释放linux服务器内存脚本

脚本说明

使用Linux的Cron定时任务结合Shell脚本来实现自动化的内存释放。

脚本用到sync系统命令
sync的作用:sync 是一个 Linux 系统命令,用于将文件系统缓存中的数据强制写入磁盘。
在你执行reboot、poweroff、shutdown命令时,系统会默认执行此命令。以防止数据丢失。

脚本

#!/bin/sh
# 脚本名称:FreeMemory.sh
# 脚本功能:当内存占用达到一个阀值时,自动执行释放内存的脚本。
# 作者:北国大人 from CSDN
# 创建时间:202471日
# 最后修改时间:2025331日
# 使用方法:crontab 设置定时任务
# 参数说明:阀值设置85%
# 依赖项:crontab shell
# 日志记录:/var/freememory/FreeMemoryLog.txt
# 示例用法:0 0 * * * /root/FreeMemory.sh 85>>/var/freememory/FreeMemoryLog.txt
# 注意事项:释放内存的风险较低,无须担心,但是严禁频繁执行此操作# 获取内存信息
total=$(free -m | grep Mem | awk '{print $2}')
used=$(free -m | grep Mem | awk '{print $3}')# 计算内存使用率
rate=$(($used * 100 / $total))# 获取当前时间
time=$(date)echo "############ $time ###############"# $1 是传递给脚本的参数,表示内存使用率的阈值
if [ $rate -gt $1 ]; thenecho "rate=$rate    内存使用率超过阈值,开始释放内存!"syncsleep 10echo 1 > /proc/sys/vm/drop_cachesecho "内存释放成功!"used2=$(free -m | grep Mem | awk '{print $3}')shifangle=$(($used - $used2))echo "内存释放了$shifangle G"
elseecho "rate=$rate  内存使用率正常"
fi

设置定时任务,每天执行一次即可

#每天执行一次,仅当内存占用达到85%时,才执行此操作。
crontab-e
0 0 * * * /root/FreeMemory.sh 85 >>/var/freememory/FreeMemoryLog.txt

echo 1:如果你只想清理页缓存,保留目录项和 inode,可以使用这个选项。
echo 2:如果你只想清理目录项dentries和 inode,保留页缓存,可以使用这个选项。
echo 3:如果你希望彻底清理所有缓存,可以使用这个选项。

注意事项

性能影响:清理缓存可能会导致系统性能短期下降,因为缓存被清空后,系统需要重新加载数据(会过滤掉无用的)。
谨慎使用:严禁频繁使用,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python Websockets库深度解析:构建高效的实时Web应用

引言 在现代Web开发中,实时通信已经成为许多应用的核心需求。无论是聊天应用、在线游戏、金融交易平台还是协作工具,都需要服务器和客户端之间建立持久、双向的通信通道。传统的HTTP协议由于其请求-响应模式,无法有效满足这些实时交互需求。…

【实用技巧】电脑重装后的Office下载和设置

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言下载设置总结互动致谢参考目录导航 前言 在数字化办公时代,Windows和…

Node.js 技术原理分析系列 —— Node.js 调试能力分析

Node.js 技术原理分析系列 —— Node.js 调试能力分析 Node.js 作为一个强大的 JavaScript 运行时环境,提供了丰富的调试能力,帮助开发者诊断和解决应用程序中的问题。本文将深入分析 Node.js 的调试原理和各种调试技术。 1. Node.js 调试原理 1.1 V8 调试器集成 Node.js…

【图论】最短路径问题总结

一图胜千言 单源最短路径 正权值 朴素Dijkstra dijkstra算法思想是维护一个永久集合U,全部点集合V。 循环n -1次 从源点开始,在未被访问的节点中,选择距离源点最近的节点 t。 以节点 t 为中间节点,更新从起点到其他节点的最短…

【最佳实践】win11使用hyper-v安装ubuntu 22/centos,并配置固定ip,扫坑记录

文章目录 场景查看本机的win11版本启用hyper-vhyper-v安装ubuntu22虚拟机1.准备好个人的 iso文件。2. hyper-v 快速创建3.编辑设置分配内存自定义磁盘位置设置磁盘大小连接网络修改虚拟机名称自定义检查点位置 和智能分页件位置虚拟机第一次连接给ubuntu22配置固定ip遇到过的坑…

自然语言处理(25:(终章Attention 1.)Attention的结构​)

系列文章目录 终章 1:Attention的结构 终章 2:带Attention的seq2seq的实现 终章 3:Attention的评价 终章 4:关于Attention的其他话题 终章 5:Attention的应用 目录 系列文章目录 前言 Attention的结构 一.seq…

Git 命令大全:通俗易懂的指南

Git 命令大全:通俗易懂的指南 Git 是一个功能强大且广泛使用的版本控制系统。对于初学者来说,它可能看起来有些复杂,但了解一些常用的 Git 命令可以帮助你更好地管理代码和协作开发。本文将介绍一些常用的 Git 命令,并解释它们的…

基于yolov11的棉花品种分类检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的棉花品种分类检测系统是一种高效、准确的农作物品种识别工具。该系统利用YOLOv11深度学习模型,能够实现对棉花主要品种,包括树棉(G. arboreum)、海岛棉(G. barbadense)、草棉&a…

论文:Generalized Category Discovery with Clustering Assignment Consistency

论文下载: https://arxiv.org/pdf/2310.19210 一、基本原理 该方法包括两个阶段:半监督表示学习和社区检测。在半监督表示学习中,使用了监督对比损失来充分地推导标记信息。此外,由于对比学习方法与协同训练假设一致,研究引入了…

Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器

JVM是Java高级部分,深入理解程序的运行及原理,面试中也问的比较多。 JVM是Java程序运行的虚拟机环境,实现了“一次编写,到处运行”。它负责将字节码解释或编译为机器码,管理内存和资源,并提供运行时环境&a…

MySQL 5.7 Online DDL 技术深度解析

14.13.1 在线DDL操作 索引操作主键操作列操作生成列操作外键操作表操作表空间操作分区操作 索引操作 下表概述了对索引操作的在线DDL支持情况。星号表示有附加信息、例外情况或依赖条件。有关详细信息,请参阅语法和使用说明。 操作原地执行重建表允许并发DML仅修…

kafka 报错消息太大解决方案 Broker: Message size too large

kafka-configs.sh --bootstrap-server localhost:9092 \ --alter --entity-type topics \ --entity-name sim_result_zy \ --add-config max.message.bytes10485880 学习营课程

HarmonyOS:ComposeTitleBar 组件自学指南

在日常的鸿蒙应用开发工作中,我们常常会面临构建美观且功能实用的用户界面的挑战。而标题栏作为应用界面的重要组成部分,它不仅承载着展示页面关键信息的重任,还能为用户提供便捷的操作入口。最近在参与的一个项目里,我就深深体会…

前端面试题之CSS中的box属性

前几天在面试中遇到面试官问了一个关于box的属性面试题,平时都是直接AI没有仔细去看过。来说说CSS中的常用box属性: 1. box-sizing box-sizing 属性定义了元素的宽度和高度是否包括内边距(padding)和边框(border&…

前端开发时的内存泄漏问题

目录 🔍 什么是内存泄漏(Memory Leak)?🚨 常见的内存泄漏场景1️⃣ 未清除的定时器(setInterval / setTimeout)2️⃣ 全局变量(变量未正确释放)3️⃣ 事件监听未清除4️⃣…

Java 基础-30-单例设计模式:懒汉式与饿汉式

在软件开发中,单例设计模式(Singleton Design Pattern)是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于管理共享资源(如数据库连接池、线程池等)或需要…

为 MinIO AIStor 引入模型上下文协议(MCP)服务器

Anthropic 最近宣布的模型上下文协议 (MCP) 将改变我们与技术交互的方式。它允许自然语言通信替换许多任务的复杂命令行语法。不仅如此,语言模型还可以总结传统工具的丰富输出,并以人类可读的形式呈现关键信息。MinIO 是世界领先的…

2023年12月电子学会青少年软件编程四级考级真题—新“跳7”游戏

此题可点下方去处查看,支持在线编程,获取源码: 新“跳7”游戏_scratch_少儿编程题库学习中心-嗨信奥https://www.hixinao.com/tiku/scratch/show-5109.html?_shareid3 程序演示可点击下方查看,支持源码查看:新“跳7…

3D 地图渲染-区域纹理图添加

引入-初始化地图&#xff08;关键代码&#xff09; // 初始化页面引入高德 webapi -- index.html 文件 <script src https://webapi.amap.com/maps?v2.0&key您申请的key值></script>// 添加地图容器 <div idcontainer ></div>// 地图初始化应该…

如何避免内存泄漏,尤其是在React中

在React中避免内存泄漏主要涉及到两个方面&#xff1a;组件的卸载清理和异步操作的正确管理。以下是几个关键的策略和最佳实践&#xff1a; 1. 清理组件中的事件监听器和定时器 当组件卸载时&#xff0c;确保清除所有绑定的事件监听器和定时器&#xff0c;否则它们会持续占用内…