

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Slurm 日誌輪換
<a name="sagemaker-hyperpod-slurm-log-rotation"></a>

SageMaker HyperPod 為 Slurm 協助程式日誌提供自動日誌輪換，以協助管理磁碟空間用量和維護系統效能。日誌輪換對於防止日誌耗用過多磁碟空間，並藉由自動封存和移除舊日誌檔案，同時維護最近的日誌資訊，確保最佳系統操作至關重要。建立叢集時，預設會啟用 Slurm 日誌輪換。

## 日誌輪換的運作方式
<a name="sagemaker-hyperpod-slurm-log-rotation-how-it-works"></a>

啟用時，日誌輪換組態：
+ 監控所有 Slurm 日誌檔案，副檔名`.log`位於控制器、登入和運算節點的 `/var/log/slurm/` 資料夾。
+ 當日誌大小達到 50 MB 時輪換日誌。
+ 在刪除日誌檔案之前，最多保留兩個輪換的日誌檔案。
+ 輪換後將 SIGUSR2 訊號傳送至 Slurm 協助程式 (`slurmctld`、 `slurmd`和 `slurmdbd`)。

## 輪換的日誌檔案清單
<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>

系統會自動為每個輪換的日誌檔案設定下列設定：


| 設定 | Value | Description | 
| --- | --- | --- | 
| rotate | 2 | 要保留的輪換日誌檔案數目 | 
| size | 50 MB | 輪換前的大小上限 | 
| copytruncate | 已啟用 | 複製並截斷原始日誌檔案 | 
| compress | disabled | 輪換的日誌不會壓縮 | 
| missingok | 已啟用 | 如果日誌檔案遺失，則沒有錯誤 | 
| notifempty | 已啟用 | 不會輪換空白檔案 | 
| noolddir | 已啟用 | 輪換的檔案會保留在相同的目錄中 | 