

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Slurm 日志轮换
<a name="sagemaker-hyperpod-slurm-log-rotation"></a>

SageMaker HyperPod 为 Slurm 守护程序日志提供自动日志轮换，以帮助管理磁盘空间使用情况和维护系统性能。日志轮换对于防止日志占用过多磁盘空间和通过自动存档和删除旧日志文件来确保最佳系统运行至关重要，同时保留最新的日志信息。创建集群时，Slurm 日志轮换默认处于启用状态。

## 日志轮换的工作原理
<a name="sagemaker-hyperpod-slurm-log-rotation-how-it-works"></a>

启用后，日志轮换配置：
+ 监视所有扩展名`.log`位于控制器、登录和计算节点上`/var/log/slurm/`文件夹中的 Slurm 日志文件。
+ 当日志大小达到 50 MB 时轮换日志。
+ 在删除之前，最多保留两个轮换的日志文件。
+ 轮换后向 Slurm 守护程序（`slurmctld``slurmd`、和`slurmdbd`）发送 SIGUSR2 信号。

## 轮换的日志文件列表
<a name="sagemaker-hyperpod-slurm-log-rotation-log-files-list"></a>

Slurm 日志位于目录中。`/var/log/slurm/`所有匹配的文件都启用了日志轮换`/var/log/slurm/*.log`。当发生旋转时，旋转后的文件会有数字后缀（例如）。`slurmd.log.1`以下列表并不详尽，但显示了一些自动轮换的关键日志文件：
+ `/var/log/slurm/slurmctld.log`
+ `/var/log/slurm/slurmd.log`
+ `/var/log/slurm/slurmdb.log`
+ `/var/log/slurm/slurmrestd.log`

## 启用或禁用日志轮换
<a name="sagemaker-hyperpod-slurm-log-rotation-enable-disable"></a>

您可以使用集群生命周期`config.py`脚本中的`enable_slurm_log_rotation`参数来控制日志轮换功能，如以下示例所示：

```
class Config:
    # Set false if you want to disable log rotation of Slurm daemon logs
    enable_slurm_log_rotation = True  # Default value
```

要禁用日志轮换，请将参数设置为`False`，如以下示例所示：

```
enable_slurm_log_rotation = False
```

**注意**  
创建集群期间，生命周期脚本在所有 Slurm 节点（控制器、登录节点和计算节点）上运行。添加到集群后，它们还会在新节点上运行。创建集群后，必须手动更新日志轮换配置。日志轮换配置存储在中`/etc/logrotate.d/sagemaker-hyperpod-slurm`。我们建议启用日志轮换，以防止日志文件占用过多的磁盘空间。要禁用日志轮换，请删除`sagemaker-hyperpod-slurm`文件或通过`#`在`sagemaker-hyperpod-slurm`文件中每行的开头添加注释掉其内容。

## 默认日志轮换设置
<a name="sagemaker-hyperpod-slurm-log-rotation-default-settings"></a>

系统会为每个轮换的日志文件自动配置以下设置：


| 设置 | 值 | 说明 | 
| --- | --- | --- | 
| rotate | 2 | 要保留的轮换日志文件数 | 
| size | 50 MB | 旋转前的最大尺寸 | 
| copytruncate | 已启用 | 复制和截断原始日志文件 | 
| compress | disabled | 轮换的日志未被压缩 | 
| missingok | 已启用 | 如果缺少日志文件则不会出错 | 
| notifempty | 已启用 | 不轮换空文件 | 
| noolddir | 已启用 | 旋转后的文件保留在同一个目录中 | 