SLURM slurmschd.log日志过大(数百GB)的安全清理方法咨询
SLURM slurmschd.log 日志安全清理方案及数据风险说明
安全清理方式(不中断SLURM运行)
用logrotate自动轮转(推荐)
这是Linux系统标配的日志管理工具,能自动按规则切割、压缩、清理日志,完全不影响SLURM服务。
新建或修改/etc/logrotate.d/slurm配置文件,示例内容如下:/var/log/slurm/slurmschd.log { size 10G # 日志达到10G时触发轮转 rotate 5 # 保留最近5份旧日志 compress # 压缩旧日志节省空间 delaycompress # 延迟压缩,避免影响当前轮转的日志读取 missingok # 日志文件不存在时不报错 notifempty # 空日志不轮转 create 0640 slurm slurm # 新建日志文件的权限和属主 postrotate /usr/bin/scontrol reconfigure # 通知SLURM重新加载配置,无需重启 endscript }配置后logrotate会按系统默认周期(通常每天)检查执行,也可以手动触发:
logrotate -f /etc/logrotate.d/slurm。手动轮转日志
适合临时处理大日志,步骤如下:- 重命名当前日志文件:
mv /var/log/slurm/slurmschd.log /var/log/slurm/slurmschd.log.20240520(后缀加日期方便识别) - 给SLURM调度进程发送USR1信号,让它重新创建并写入新的日志文件:
kill -USR1 $(cat /var/run/slurm/slurmschd.pid) - 之后可以把旧日志压缩(
gzip /var/log/slurm/slurmschd.log.20240520)或删除,不影响SLURM运行。
- 重命名当前日志文件:
紧急截断日志(仅临时应急)
如果需要立刻清空日志释放空间,用truncate -s 0 /var/log/slurm/slurmschd.log,这个命令会把日志文件大小置为0,且不改变文件inode,SLURM进程能继续写入。但这种方式会丢失所有未轮转的日志内容,仅推荐紧急情况下使用。
清理后的数据丢失风险
- 日志文件仅记录历史操作和状态变更,比如作业提交记录、调度决策过程、节点状态变化日志等,这些数据主要用于故障排查、作业性能回溯。如果集群近期无异常,清理旧日志不会影响SLURM核心运行。
- 清理不会丢失SLURM的核心运行数据(比如当前作业队列、节点在线状态、用户权限配置等),这些数据要么存在SLURM的数据库(如MySQL)中,要么在服务进程内存里,和日志文件完全独立。
- 若清理的是近期未轮转的日志,会丢失这段时间的调度记录,可能影响后续故障排查,因此优先用轮转方式保留部分历史日志。
内容的提问来源于stack exchange,提问作者Emma Athan
相关产品推荐
相关产品推荐

