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

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.hqwc.cn/news/579013.html

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

相关文章

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

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

vue-v-for遍历index与id

一.遍历列表key的作用(index作为key) 虚拟DOM上有key,是虚拟的,但是真实DOM上没有,key是Vue内部的 当使用index作为key的时候,Vue会根据初识数据生成一个初始的虚DOM, 然后在页面上映射出真实DOM 如果向数据…

C#_事件_多线程(基础)

文章目录 事件通过事件使用委托 多线程(基础)进程:线程: 多线程线程生命周期主线程Thread 类中的属性和方法创建线程管理线程销毁线程 事件 事件(Event)本质上来讲是一种特殊的多播委托,只能从声明它的类中进行调用,基本上说是一个用户操作&…

kubernetes(K8S)学习(五):K8S进阶(Lifecycle......偏理论)

K8S进阶(Lifecycle......偏理论) 一、Pod进阶学习之路1.1 Lifecycle1.2 重启策略1.3 静态Pod1.4 健康检查1.5 ConfigMap1.6 Secret1.7 指定Pod所运行的Node 二、Controller进阶学习之路2.1 Job & CronJob2.2 StatefulSet2.3 DaemonSet2.4 Horizontal…

039—pandas 不规则表头转换为规整DataFrame

使用步骤 读入数据 代码如下(示例): import pandas as pd import numpy as np df pd.DataFrame({0: [姓名, 性别],1: [张三, 男],2: [年龄,np.nan],3: [18,np.nan]}) dfdf.values.reshape([4,2])r len(df.columns)(pd.DataFrame(df.valu…

MQTT.fx连接新版OneNet平台的一些问题

对于使用通信主题publish给OneNET时,如图所示: 但是点击Publish后,出现了Broker connection lost的问题 原因在于:新版OneNET和旧版OneNET的通信主题不一致了,查阅文档获知,格式如下: $sys/{p…

家庭网络防御系统搭建-配置流量镜像到NDR系统

由于需要将家庭网络中的全部流量送到NDR分析系统进行分析,因此需要一个具备流量镜像功能的交换机或者路由器。在前面文章所提及的家庭网络架构中,需要一台交换机即可拷贝东西向流量以及南北向流量。当然如果家庭中的路由器或者其他设备具备交换机镜像功能…

代码审计之远程调试方法介绍

前言 在做代码审计时,通常需要将源码运行起来,用于验证漏洞是否真实存在,通过debug可以更加直观的观察程序的运行细节,可以比较快的确认有效漏洞,debug也是开发人员在代码调试测试阶段经常用到的方法。但源码开始运行…

Linux:程序地址空间详解

目录 一、堆、栈、环境参数所在位置 二、进程地址空间底层实现原理 ​编辑 三、什么是地址空间 四、为什么要有进程地址空间 五、细谈写实拷贝的实现及意义 在C/C学习中,都学习过如上图所示的一套存储结构,我们大致知道一般存储空间分为堆区&#…

社交网络的未来:Facebook如何塑造数字社交的下一章

引言 社交网络已成为我们生活中不可或缺的一部分,而Facebook作为其领军者,一直在塑造着数字社交的未来。本文将深入探讨Facebook在未来如何塑造数字社交的下一章,并对社交网络的发展趋势进行展望和分析。 1. 引领虚拟社交的潮流 Facebook将…

建立一个简单的网页音乐盒模型效果#css#h5

“音乐盒”可以看做一个大盒子&#xff0c;用<div>标签进行定义。大盒子的上面为文本内容&#xff0c;可以在<div>标签中嵌套<h2>和<p>标签来实现&#xff1b;大盒子下面为图像&#xff0c;通过在<div>标签中嵌套<img/>标签来实现。 样式…

R语言实现——网状 Meta 分析

近来年&#xff0c;网状 Meta 分析相关研究不断涌现&#xff0c;此类研究不但能发表在国内各大核心期刊上&#xff0c;还能在SCI期刊甚至医学4大刊上看到其身影。随手在pubmed上面一搜索&#xff0c;就能得到一万多篇相关文献。俨然成为医学文献研究的“大杀器”&#xff01; P…