电子说
前言
内存总是不够用?
缓存总是被占用?
无法实时释放缓存?
这都不是事,看完本文让你的linux服务器时刻保持强劲动力!!!
首先需要了解两个东西“定时任务”与“内存释放”
定时任务
命令:crontab
命令相关参数:
-e (修改用户定时任务)
-l (列出用户的定时任务)
-r (删除用户定时任务)
-i (删除定时任务前通知用户)
定时任务设置参数
基本格式 :
示例1
示例2
内存释放
命令:
用于linux系统 (RedHat CentOS CGSL ubuntu)
sync 做同步,将所有未写的系统缓冲区写到磁盘中,以确保文件系统的完整性,否则在释放缓存的过程中,可能会丢失未保存的文件
1 释放页缓存
2 释放dentries和inodes
3 释放所有缓存
实际操作
步骤:
编写内存释放的脚本
root用户下编写脚本
2.设置crontab
root用户下执行crontab -e命令
查看设置情况
[root@ems001 home]# crontab -l
*/1 * * * * /home/clean_mem.sh
[root@ems001 home]#
需要注意的是我们通过root用户执行的crontab命令,则该定时任务的规则仅适用于root用户,所以脚本的属组为root用户
3.查看定时任务的执行情况
定时任务的执行日志记录在/var/log/cron中
[root@ems001 home]# cd /var/log/
[root@ems001 log]# tail -f cron
Jul2410:37:01 ems001 CROND[19842]:(root) CMD (/home/clean_mem.sh)
Jul2410:38:02 ems001 CROND[19850]:(root) CMD (/home/clean_mem.sh)
Jul2410:39:01 ems001 CROND[19854]:(root) CMD (/home/clean_mem.sh)
Jul2410:40:01 ems001 CROND[19862]:(root) CMD (/home/clean_mem.sh)
查看内存释放情况
[root@ems001 home]# free
total used free shared buffers cached
Mem: 24554900 5807180 18747720 16232 1276 1827572
-/+ buffers/cache: 3978332 20576568
Swap: 18874364 0 18874364
[root@ems001 home]# free
total used free shared buffers cached
Mem: 24554900 4980332 19574568 16232 1300 999016
-/+ buffers/cache: 3980016 20574884
Swap: 18874364 0 18874364
两次对比可以看出释放了1G的内存
这样一个自动清理内存的设置就完成了
4.删除定时任务
结语
通过定时任务来执行脚本的方法其实还有很多,比如直接使用crond服务,或者使用 at time
如crond服务,如果用的任务不是以hourly monthly weekly方式执行的,则可以直接在/etc/cron.d目录中创建一个定时任务格式的脚本
另外需要注意的很多人会存在疑惑的,使用 crontab -e 与 直接编辑 /etc/crontab有什么区别
做系统级配置我们会直接配置 /etc/crontab,用户级的则用 crontab -e,一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。
关于定时清理内存的方法,并不是所有服务器都适用,对于某些需要持续申请内存的服务来说,不断释放内存可能会造成处理速度降低,所以使用时还需要考虑自身服务特性来进行设置
全部0条评论
快来发表一下你的评论吧 !