系统资源紧缺?不用担心,Linux命令和Shell脚本帮你搞定
00 分钟
2024-1-25
2024-4-19
type
status
date
slug
summary
tags
category
password
icon
notion image
在之前的文章中介绍了如何申请AWS免费主机使用WordPress搭建自己的个人网站,但是在我使用过程中发现了一个问题,由于陆陆续续安装了好几个插件,偶尔在访问网站时会出现数据库连接出错的异常情况,导致页面无法访问。稍等一会儿刷新页面又可以正常访问了,怀疑是服务器资源紧张导致的。
notion image
登录服务器后使用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"
我在控制台命令手动执行了下列命令,发现效果还是挺明显的
在清理缓存前,buff/cache占用321M。
notion image
清理缓存后,buff/cache占用174M,释放了约150M空间出来。
notion image
既然上述命令管用,那么应该让它能够自动执行,而不需要每次都手动来敲命令。要实现这个效果也挺简单,我们创建一个shell脚本来定期执行。
使用vi cleanCache.sh创建一个脚本文件,脚本内容如下:
保存脚本文件,使用如下命令给脚本添加执行权限。
接下来我们使用如下命令验证脚本的正确性。
如下图所示脚本文件执行成功。
notion image
接下来查看当前目录,找到脚本所在的绝对路径。使用pwd命令查看当前文件路径,如下图所示,我的脚本所在的绝对路径是 /home/centos/script/cleanCache.sh
notion image
创建一个系统定时任务,周期性执行清理缓存的脚本。使用下列命令编辑定时任务文件:
在该文件中追加写入如下内容,并保存文件。
这条命令的意思是每10分钟执行一次脚本。可以使用crontab -l 查看定时任务列表是否保存成功。
还可以使用下列命令查看定时任务的执行记录,如下图所示,我为了测试,设置2分钟执行一次。
notion image
这样,系统就可以周期性帮我们自动清理缓存啦,一定程度上解决了系统资源紧缺的问题!

评论
Loading...