系统资源紧缺?不用担心,Linux命令和Shell脚本帮你搞定

news2024/11/30 13:34:59

252c41a838cd97991ff7b8746d5baa9b.jpeg

在之前的文章中介绍了如何申请AWS免费主机使用WordPress搭建自己的个人网站,但是在我使用过程中发现了一个问题,由于陆陆续续安装了好几个插件,偶尔在访问网站时会出现数据库连接出错的异常情况,导致页面无法访问。稍等一会儿刷新页面又可以正常访问了,怀疑是服务器资源紧张导致的。

ce5d3ef4c599f71ddcdf725034c12104.jpeg

登录服务器后使用free -h命令可以查看当前系统的内存使用情况,发现buff/cache占用空间较大,也就是缓存占用了较多空间,导致留给系统运行的空间就变小了,我的免费主机只有1G内存,资源非常有限。

因为缓存可能会占用过多的内存和和磁盘空间,影响系统的性能和稳定性。遇到这种情况,我们可以主动去清理缓存。在Linux系统中可以使用下面的方法来清理系统缓存:

  • 使用sync命令来确保文件系统的完整性,将所有未写的系统缓冲区写到到到磁盘中。
  • 使用echo命令来指定要清除的缓存类型,数字越大表示清除越多。例如:
    • echo 1 > /proc/sys/vm/drop_caches:释放网页缓存。
    • echo 2 > /proc/sys/vm/drop_caches:释放目录项和索引。
    • echo 3 > /proc/sys/vm/drop_caches:释放网页缓存、目录项和索引。
  • 使用sudo命令来提升权限,然后执行上述命令。例如:
  • 方式一:利用管道和tee命令来执行sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
  • 方式二:利用bash命令来执行sudo bash -c "echo 3 > /proc/sys/vm/drop_caches"
  • 方式二:利用sh命令来执行sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

我在控制台命令手动执行了下列命令,发现效果还是挺明显的

sudo bash -c "echo 1 > /proc/sys/vm/drop_caches"
sudo bash -c "echo 2 > /proc/sys/vm/drop_caches"
sudo bash -c "echo 3 > /proc/sys/vm/drop_caches"

在清理缓存前,buff/cache占用321M。

181bb7b9f60c70e0c65b38aaf1173d45.jpeg

清理缓存后,buff/cache占用174M,释放了约150M空间出来。

b7c013283dd6a64015f8da6ef1227aaa.jpeg

既然上述命令管用,那么应该让它能够自动执行,而不需要每次都手动来敲命令。要实现这个效果也挺简单,我们创建一个shell脚本来定期执行。

使用vi cleanCache.sh创建一个脚本文件,脚本内容如下:

#!/bin/bash
echo "开始清除缓存"
#缓存数据写入硬盘,防止数据丢失
sync;sync;sync
#延迟10秒后释放缓存空间
sleep 10
sudo bash -c "echo 1 > /proc/sys/vm/drop_caches"
sudo bash -c "echo 2 > /proc/sys/vm/drop_caches"
sudo bash -c "echo 3 > /proc/sys/vm/drop_caches"
echo "清除缓存结束"

保存脚本文件,使用如下命令给脚本添加执行权限。

chmod +x cleanCache.sh

接下来我们使用如下命令验证脚本的正确性。

./cleanCache.sh

如下图所示脚本文件执行成功。

1fc8c749e563ee6e301c071e965e028c.jpeg

接下来查看当前目录,找到脚本所在的绝对路径。使用pwd命令查看当前文件路径,如下图所示,我的脚本所在的绝对路径是 /home/centos/script/cleanCache.sh

bbb10235b745098337d7cf4672b4261e.jpeg

创建一个系统定时任务,周期性执行清理缓存的脚本。使用下列命令编辑定时任务文件:

crontab -e

在该文件中追加写入如下内容,并保存文件。

*/10 * * * * /home/centos/script/cleanCache.sh

这条命令的意思是每10分钟执行一次脚本。可以使用crontab -l 查看定时任务列表是否保存成功。

还可以使用下列命令查看定时任务的执行记录,如下图所示,我为了测试,设置2分钟执行一次。

sudo cat /var/log/cron | grep cleanCache 1c024a2c5665e16bf200d2fe39dd92f6.jpeg

这样,系统就可以周期性帮我们自动清理缓存啦,一定程度上解决了系统资源紧缺的问题!

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

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

相关文章

想做跨境电商测评自养号需要满足什么条件?

测评对于卖家来说算是一种低成本,高回报的推广营销方式,对于商品流量,转化率,关键词质量分,链接权重等都起到了一定的辅助作用,但凡事都有好坏,倘若处理不得当,很容易影响店铺&#…

如何将Maven与TestNG集成

我们已经讨论了如何在maven中执行单元测试用例,但那些是JUnit测试用例,而不是TestNG。当maven使用“mvn test”命令进入测试阶段时,这些用例被执行。 本文将介绍如何将Maven与TestNG集成,并在maven进入测试阶段时执行TestNG测试。…

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(十三): 聚酰亚胺PI纤维的缺点

聚酰亚胺PI纤维的缺点 聚酰亚胺PI纤维虽然是一种具有许多优异特性的高性能纤维,但也存在一些缺点和局限性,这些缺点可能会影响其在某些应用领域的适用性。主要缺点包括: 1.成本高:聚酰亚胺PI纤维的生产过程复杂,原料成…

无药可医还能怎么办?越没本事的人,越喜欢从别人身上找原因!——早读(逆天打工人爬取热门微信文章解读)

无药可医的病该怎么办呢? 引言Python 代码第一篇 洞见 《骆驼祥子》:越没本事的人,越喜欢从别人身上找原因第二篇 人民日报 来啦 新闻早班车要闻社会政策 结尾 “吾日三省吾身,而后深知自助者天助之。” 在人生的迷宫中 遭遇困境时…

基于Springboot+vue的鲜花销售商城网站

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,鲜花销售商城当然也不能排除在外。鲜花销售商城是以实际运用为开发背景,运用软件工程原理和开发方法&#x…

【Spring】SpringMvc项目当中,页面删除最后一条数据,页面不跳转并且数据为空。

期待您的关注 在之前学习SpringMvc的时候遇到过这样一个BUG,当我在一个页面删除该页面的最后一条数据的时候,一旦我删除成功,那么这个页面不会进行跳转,而是还停留在这个本不应该存在的页面,而且数据什么都没有。如下…

Java基础之自增自减运算符

Java基础之自增自减运算符 基本用法 int a 10;a; System .out.prinln(a);//a11int a 10;a; System .out.prinln(a);//a11tip: 第一次运算之后a的值会更新 然后再进行下面的运算!!! 练习: 代码呈现: 结果: tip: x的值是最新的x的值.

【Node.js】大文件上传

概述 大文件上传通常采用分片上传。如果因为某些原因上传突然中断,解决问题之后可以接着之前的分片上传,而不需要从头开始上传,也就是断点续传。此外还可以利用多个网络连接并行上传多个分片,提高上传速度。 注:前端不…

汽车电子与软件架构概述

汽车电子与软件架构概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己…

N9010A安捷伦N9010A信号分析仪

181/2461/8938产品概述: Keysight N9010A EXA 信号分析仪是最大限度提高生产线吞吐量的最快方法。从测量速度到代码兼容性,它让每一毫秒都很重要,并帮助您降低总体测试成本。 我们无法预测未来,但安捷伦可以利用我们面向未来的测…

零基础教程:R语言lavaan结构方程模型(SEM)

查看原文>>>最新基于R语言lavaan结构方程模型(SEM)实践技术应用 基于R语言lavaan程序包,通过理论讲解和实际操作相结合的方式,由浅入深地系统介绍结构方程模型的建立、拟合、评估、筛选和结果展示的全过程。我们筛选大量…

马斯克旗下xAI发布Grok-1.5,相比较开源的Grok-1,各项性能大幅提升,接近GPT-4!

本文原文来自DataLearnerAI官方网站:马斯克旗下xAI发布Grok-1.5,相比较开源的Grok-1,各项性能大幅提升,接近GPT-4! | 数据学习者官方网站(Datalearner) 继Grok-1开源之后,xAI宣布了Grok-1.5的内测消息&…

Linux ssh免密登录配置

步骤 在本地机器上生成公钥和私钥对。将本地公钥复制到远程机器的~/.ssh/authorized_keys文件中。 实现1 在服务器上生成SSH密钥对 ssh-keygen -t rsa -f /home/id_rsa1ssh-keygen: 这是一个用于生成、管理和转换 SSH 密钥的 OpenSSH 工具。-t rsa: 用于指定要生成的密钥类…

学生价,leetcode会员购买分析

最近想要购买leetcode会员,但不知道买啥好,打算用python可视化数据进行一个简单的分析 具体数据如下 curve 1: 首两月79元每月,后续连续包月59curve 2: 90天199curve 3: 365天365(学生认证) 这么看,数据…

【如何解决一些常见的 Composer 错误的保姆级讲解】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

AIS板评测 dAI01-OEM

目录 一、设备概述 二、技术性能评测 三、总结 一、设备概述 dAI01-OEM是一款AIS接收机板卡,旨在与OpenCPN、Ship Plotter等能够接收串口数据输入的软件实现无缝配合。它不仅能够高效接收并处理AIS信号,还能够将本船的信息实时上传到MarineTraffic和…

vivado 生成比特流或器件镜像

在生成比特流或器件镜像之前 , 请复查其设置 , 确保这些设置对于您的设计都正确无误 , 这一点至关重要。 Vivado IDE 中的比特流和器件镜像设置分为 2 种类型 : 1. 比特流或器件镜像文件格式设置。 2. 器件配置设置。 在 V…

python中raise_for_status方法的作用

文章目录 说明示例1:基本使用示例2:多种异常 说明 raise_for_status() 方法在 Python 的 requests 库中用于在发送 HTTP 请求后检查响应的状态码。如果响应的状态码表示请求未成功(即状态码不是 2xx),则该方法会抛出一…

网络安全入门 5 天速成教程_ WEB 安全渗透攻防技术

前言 随着 Web 技术发展越来越成熟,而非 Web 服务越来越少的暴露在互联网上,现在互联网安全主要指的是 Web 安全。 为了自身不“裸奔”在大数据里,渐渐开始学习 Web 安全,在学习 Web 安全的过程中,发现很大一部分知识…

StructStreaming Batch mode和Continuous mode

StructStreaming Batch mode和Continuous mode 让我们把目光集中到 Structured Streaming,也就是流处理引擎本身。Structured Streaming 与 Spark MLlib 并列,是 Spark 重要的子框架之一。值得一提的是,Structured Streaming 天然能够享受 S…