centOS定时任务-cron服务

发布于:2024-12-18 ⋅ 阅读:(54) ⋅ 点赞:(0)

最近在训练模型的过程中,经常会因为内存爆炸而停止模型训练过程,而且因为内存占满停止的训练进程甚至都没有任何的报错提示。
1、需要减少num_worker的数量,降低需要占用内存的数据数量
2、可以通过free -h监控内存的占用情况
3、可以通过linux的清除缓存命令来手动的对缓存进行清除
4、在验证1-3有效的前提下通过linux下定时任务来定时的对缓存进行清理动作

1、发现训练无故暂停且没有错误log输出

在这里插入图片描述
经过debug流程发现问题来源,再通过free命令发现cache确实在训练过程中呈现逐渐增大的迹象。

2、编写内存释放脚本

echo "开始清理缓存"
sudo sh -c 'sync && echo 1 > /proc/sys/vm/drop_caches'
sudo sh -c 'sync && echo 2 > /proc/sys/vm/drop_caches'
sudo sh -c 'sync && echo 3 > /proc/sys/vm/drop_caches'

#sudo sync && echo 1 > /proc/sys/vm/drop_caches
#sudo sync && echo 2 > /proc/sys/vm/drop_caches
#sudo sync && echo 3 > /proc/sys/vm/drop_caches
echo "清理结束"

注释掉的部分会在运行过程中报错,因为加sudo 会给后面的 shell 命令授权, 但仅此而已. 如果后面还接有其他命令, 就会显示Permission denied, 因为后面的命令并没有被授权

而 sh -c “command …” 就是对后面的一整条命令整体授权, 所以多个命令需要使用 sh -c

3、定时运行脚本

在CentOS系统中,定时执行命令通常依赖于cron服务,它通过crontab命令来设置。以下是配置和使用cron服务的基本步骤。

相关命令
安装cron服务:这将安装cron相关的包,包括crontabs工具,用于管理cron作业。

sudo yum install crontabs

启动和启动cron服务:

sudo systemctl start crond
sudo systemctl enable crond

配置定时任务:

vim /etc/crontab 
# 或者 crontab -e (立即生效)

重启定时任务:

service crond restart

常见的用法:

usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)      编辑用户命令
        -l      (list user's crontab)       列表
        -r      (delete user's crontab)    删除用户任务
        -i      (prompt before deleting user's crontab)     在删除前确认
        -s      (selinux context) 

在这里插入图片描述
crontab的资料也可以参考:linux 定时执行脚本


网站公告

今日签到

点亮在社区的每一天
去签到