网站建设 篇十二:系统资源紧缺?不用担心,Linux命令和Shell脚本帮你搞定

2024-03-30 10:39:11 3点赞 19收藏 0评论
系统资源紧缺?不用担心,Linux命令和Shell脚本帮你搞定

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

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

登录服务器后使用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。

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

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

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

既然上述命令管用,那么应该让它能够自动执行,而不需要每次都手动来敲命令。要实现这个效果也挺简单,我们创建一个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

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

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

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

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

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

crontab -e

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

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

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

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

sudo cat /var/log/cron | grep cleanCache 系统资源紧缺?不用担心,Linux命令和Shell脚本帮你搞定

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

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1999元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1199元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1899元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2699元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

1917.9元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1599元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

1899元起

QNAP 威联通 TS-264C 宇宙魔方 8G内存2盘位四核心处理器网络存储服务器内置双 M.2 插槽NAS私有云

QNAP 威联通 TS-264C 宇宙魔方 8G内存2盘位四核心处理器网络存储服务器内置双 M.2 插槽NAS私有云

1879元起

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)

3499元起

QNAP 威联通 TS-464C 4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS(含企

QNAP 威联通 TS-464C 4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS(含企

2099元起

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

7480元起

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

799元起

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

1899元起

文中相关商品

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
19
扫一下,分享更方便,购买更轻松