

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Slurm 회계에서 누락된 작업 레코드 문제 해결
<a name="troubleshooting-missing-accounting-records"></a>

`sacct` 또는 `sreport` 명령의 출력과 같이 완료까지 실행된 작업이 Slurm 회계 보고서에서 누락되었습니다. 레코드는 제한된 기간 동안만 존재하지 않으며, 일반적으로 작업 제출률이 매우 높은 기간을 따릅니다. 회계 보고서는 해당 기간 전후에 완료됩니다. 이 주제는 Slurm 회계가 활성화된 클러스터에 적용됩니다. 회계에 대한 자세한 내용은 단원을 참조하십시오[AWS PCS의 Slurm 회계](slurm-accounting.md).

## 일반적인 원인
<a name="troubleshooting-missing-accounting-records-cause"></a>

Slurm 컨트롤러 데몬(`slurmctld`)은 회계 데이터베이스에 회계 데이터를 직접 쓰지 않습니다. 내부 인 메모리 대기열을 통해 Slurm 데이터베이스 데몬(`slurmdbd`)으로 데이터를 전송합니다. 작업이 데이터베이스에 레코드를 `slurmdbd` 커밋하는 것보다 빠르게 제출되면 대기열이 최대 크기에 도달할 수 있습니다. 대기열이 가득 차면는 새 회계 메시지를 대기열에 추가하는 대신 `slurmctld` 삭제합니다.

폐기된 메시지는 재시도되지 않으므로 전달된 작업 기록은 회계 데이터베이스에 영구적으로 없습니다. 회계 데이터만 영향을 받습니다. 작업 예약 및 작업 실행은 정상적으로 계속됩니다. `slurmdbd` 이미 커밋된 레코드는 데이터베이스에 남아 있습니다. 대기열이 드레이닝되면 회계가 자동으로 재개됩니다.

## 해결 방법
<a name="troubleshooting-missing-accounting-records-resolution"></a>

**원인을 확인하고 재발 가능성을 줄이려면**

1. 클러스터의 `slurmctld` 로그에서 다음과 유사한 항목을 검색합니다.

   ```
   error: agent queue is full (33794), discarding DBD_JOB_START:1425 request
   ```

   각 항목은 삭제된 회계 메시지 하나에 해당합니다. 메시지 유형은 , `DBD_JOB_START`, `DBD_STEP_START`또는와 같이 손실된 레코드`DBD_JOB_COMPLETE`를 식별합니다`DBD_STEP_COMPLETE`. 클러스터가 스케줄러 로그를 전송하지 않는 경우 로그 전송을 설정합니다. 이렇게 하면 조건이 다시 발생하면 원인을 확인할 수 있습니다. 자세한 내용은 [AWS PCS의 스케줄러 로그](monitoring_scheduler-logs.md) 단원을 참조하십시오.

1. 클러스터의 slurmdbd 구성`1`에서 `CommitDelay` 파라미터를 로 설정합니다. 이 설정을 사용하면가 각 레코드를 개별적으로 커밋하는 대신 데이터베이스 커밋을 `slurmdbd` 그룹화하여 대기열을 비우는 속도를 높입니다. 클러스터의 `SlurmdbdCustomSettings` 속성을 사용하여 설정을 적용합니다. 자세한 내용은 Slurm 설명서[CommitDelay](https://slurm.schedmd.com/slurmdbd.conf.html#OPT_CommitDelay)의 [AWS PCS에서 사용자 지정 SlurmDBD 설정 구성](slurmdbd-custom-settings.md) 및 섹션을 참조하세요.
**중요**  
`SlurmdbdCustomSettings`는 클러스터에를 추가하는 대신 클러스터의 slurmdbd 설정을 대체합니다. 업데이트 요청에서 생략한 설정은 모두 제거됩니다. 클러스터에 이미 slurmdbd 설정이 있을 수 있는 경우 `aws pcs get-cluster` 먼저 `{parameterName=CommitDelay,parameterValue="1"}`를 실행하고 검색된 목록에를 추가한 다음 전체 목록을 제출합니다.  
**Example - 클러스터`CommitDelay`에서 설정**  

   ```
   aws pcs update-cluster --cluster-identifier {{my-cluster}} \
   --slurm-configuration \
   'SlurmdbdCustomSettings=[{parameterName=CommitDelay,parameterValue="1"}]'
   ```

1. 설정이 적용되었는지 확인합니다. 에서 클러스터에 대한 **추가 스케줄러 설정을** AWS Management Console확인합니다. 에서 다음 명령을 AWS CLI실행하고 응답의 `slurmConfiguration` 필드를 확인합니다.

   ```
   aws pcs get-cluster --cluster-identifier {{my-cluster}}
   ```

**참고**  
`slurmctld` 폐기된 회계 레코드는 복구할 수 없습니다. 영향을 받는 기간 동안 실행된 작업은 회계 보고서에서 제외됩니다.

## 예방책
<a name="troubleshooting-missing-accounting-records-prevention"></a>

나중에 누락된 레코드를 찾는 대신 대기열 포화를 감지하려면 Amazon CloudWatch Logs, Amazon Simple Storage Service(Amazon S3) 또는 Amazon Data Firehose에 `slurmctld` 로그를 전송하고 `agent queue is full` 항목을 모니터링합니다. 자세한 내용은 [AWS PCS의 스케줄러 로그](monitoring_scheduler-logs.md) 단원을 참조하십시오.

작업 제출률이 높은 워크로드를 실행하는 클러스터`1`에서를 로 `CommitDelay` 설정합니다.