

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

# Amazon EFS 성능 문제 해결
<a name="troubleshooting-efs-general"></a>

일반적으로 Amazon EFS에 문제가 발생해 문제를 해결하는 경우 최신 Linux 커널을 사용하고 있는지 확인하세요. 엔터프라이즈 Linux 배포판을 사용하는 경우 다음을 권장합니다.
+ Amazon Linux 2(커널 4.3 이상)
+ Amazon Linux 2015.09 이상
+ RHEL 7.3 이상
+ Ubuntu 16.04 버전 모두
+ 커널 3.13.0-83 이상의 Ubuntu 14.04
+ SLES 12 Sp2 이상

다른 배포판이나 사용자 지정 커널을 사용하고 있는 경우 커널 버전 4.3 이상을 권장합니다.

**참고**  
RHEL 6.9는 [병렬로 많은 파일을 열 때 성능 불량](#open-close-operations-serialized)으로 인해 특정 워크로드에 대해서는 차선일 수 있습니다.

**Topics**
+ [EFS 파일 시스템을 생성할 수 없음](#cant-create-filesystem)
+ [NFS 파일 시스템에서 허용된 파일에 대한 액세스가 거부되었습니다.](#nfs-16-group-limit)
+ [Amazon EFS 콘솔에 액세스할 때 발생하는 오류](#efs-console-access-errors)
+ [Amazon EC2 인스턴스 중단](#ec2-instance-hangs)
+ [대용량 데이터를 쓰는 애플리케이션이 중단됨](#application-large-data-hangs)
+ [병렬로 많은 파일을 열 때 성능 불량](#open-close-operations-serialized)
+ [사용자 정의 NFS 설정으로 인해 쓰기 지연 발생](#custom-nfs-settings-write-delays)
+ [Oracle Recovery Manager로 백업을 생성하는 속도가 느림](#oracle-backup-slow)

## EFS 파일 시스템을 생성할 수 없음
<a name="cant-create-filesystem"></a>

EFS 파일 시스템 생성 요청이 실패하고 다음 메시지가 표시됩니다.

```
User: arn:aws:iam::111122223333:user/username is not authorized to
perform: elasticfilesystem:CreateFileSystem on the specified resource.
```

**취할 조치**  
 AWS Identity and Access Management (IAM) 정책을 확인하여 지정된 리소스 조건으로 EFS 파일 시스템을 생성할 권한이 있는지 확인합니다. 자세한 내용은 [Amazon EFS의 자격 증명 및 액세스 관리](security-iam.md) 단원을 참조하십시오.

## NFS 파일 시스템에서 허용된 파일에 대한 액세스가 거부되었습니다.
<a name="nfs-16-group-limit"></a>

16개 이상의 액세스 그룹 ID(GID)가 할당된 사용자가 NFS 파일 시스템에서 작업을 수행하려고 하면 파일 시스템에서 허용된 파일에 대한 액세스가 거부될 수 있습니다. 이 문제는 NFS 프로토콜이 사용자당 최대 16개의 GID를 지원하고 [RFC 5531](https://www.rfc-editor.org/rfc/rfc5531)에 정의된 대로 NFS 클라이언트 요청에서 추가 GID가 잘리기 때문에 발생합니다.

**취할 조치**  
각 사용자에게 16개 이하의 액세스 그룹(GID)이 할당되지 않도록 NFS 사용자 및 그룹 매핑을 재구성하세요.

## Amazon EFS 콘솔에 액세스할 때 발생하는 오류
<a name="efs-console-access-errors"></a>

이 섹션에서는 Amazon EFS 관리 콘솔에 액세스할 때 사용자가 겪을 수 있는 오류를 설명합니다.

### `ec2:DescribeVPCs`에 대한 보안 인증 정보를 인증하는 중 오류가 발생했습니다.
<a name="efs-console-access-error-ec2"></a>

Amazon EFS 콘솔에 액세스할 때 다음 오류 메시지가 표시됩니다.

```
AuthFailure: An error occurred authenticating your credentials for ec2:DescribeVPCs.
```

이 오류는 로그인 보안 인증이 Amazon EC2 서비스를 통해 성공적으로 인증되지 않았음을 나타냅니다. Amazon EFS 콘솔은 사용자가 선택한 VPC에서 EFS 파일 시스템을 생성할 때 사용자 대신 Amazon EC2 서비스를 직접 호출합니다.

**취할 조치**  
Amazon EFS 콘솔에 액세스하는 클라이언트의 시간이 올바르게 설정되었는지 확인하세요.

## Amazon EC2 인스턴스 중단
<a name="ec2-instance-hangs"></a>

파일 시스템을 먼저 탑재 해제하지 않고 파일 시스템 탑재 대상을 삭제했기 때문에 Amazon EC2 인스턴스가 중단될 수 있습니다.

**취할 조치**  
파일 시스템 탑재 대상을 삭제하기 전에 파일 시스템의 탑재를 해제합니다. Amazon EFS 파일 시스템 탑재 해제에 대한 자세한 내용은 [파일 시스템 탑재 해제](unmounting-fs.md) 섹션을 참조하세요.

## 대용량 데이터를 쓰는 애플리케이션이 중단됨
<a name="application-large-data-hangs"></a>

Amazon EFS에 대용량 데이터를 쓰는 애플리케이션이 중단되어 인스턴스가 재부팅됩니다.

**취할 조치**

애플리케이션이 Amazon EFS에 데이터를 전부 쓰는 데 시간이 너무 오래 걸리는 경우, 프로세스가 응답 없음 상태로 보이기 때문에 Linux가 재부팅될 수 있습니다. 이러한 동작은 두 가지 커널 구성 파라미터, 즉 `kernel.hung_task_panic` 및 `kernel.hung_task_timeout_secs`로 정의합니다.

다음 예에서는 `ps` 명령과 `D`를 사용해 인스턴스가 재부팅되기 전에 중단 프로세스의 상태를 보고함으로써 이 프로세스가 I/O 대기 중임을 알립니다.

```
$ ps aux | grep large_io.py
root 33253 0.5 0.0 126652 5020 pts/3 D+ 18:22 0:00 python large_io.py
/efs/large_file
```

재부팅되지 않도록 하려면 제한 시간을 늘리거나 중단 작업이 감지되면 커널 패닉을 비활성화하도록 합니다. 다음 명령은 대부분의 Linux 시스템에서 중단 작업 커널 패닉을 비활성화합니다.

```
$ sudo sysctl -w kernel.hung_task_panic=0
```

## 병렬로 많은 파일을 열 때 성능 불량
<a name="open-close-operations-serialized"></a>

애플리케이션이 여러 파일을 병렬로 열 때 I/O 병렬화를 통해 예상된 성능 향상을 보이지 않습니다.

**취할 조치**

이 문제는 네트워크 파일 시스템 버전 4(NFSv4) 클라이언트 및 NFSv4.1을 사용하는 RHEL 6 클라이언트가 NFS 열기 및 닫기 작업을 직렬화하기 때문에 발생합니다. NFS 프로토콜 버전 4.1과 제안한 [Linux 배포판](#recommend.linux.dist) 중 하나를 사용하면 이 문제가 발생하지 않습니다.

NFSv4.1을 사용할 수 없는 경우에는 Linux NFSv4.0 클라이언트가 사용자 ID 및 그룹 ID별로 열기 및 닫기 요청을 직렬화합니다. 이러한 직렬화는 여러 프로세스 또는 여러 스레드가 동시에 요청을 발급하는 경우에도 발생합니다. 모든 ID가 일치하는 경우 클라이언트는 NFS 서버로 열기 또는 닫기 작업을 한 번에 하나만 보낼 수 있습니다. 이러한 문제를 해결하려면 다음 중 한 가지 방법을 시도하면 됩니다.
+ 동일한 Amazon EC2 인스턴스의 다른 사용자 ID에서 각 프로세스를 실행할 수 있습니다.
+ 모든 열기 요청에서 사용자 ID를 동일하게 남겨 두고 대신 그룹 ID 세트를 수정할 수 있습니다.
+ 별도의 Amazon EC2 인스턴스에서 각 프로세스를 실행할 수 있습니다.

## 사용자 정의 NFS 설정으로 인해 쓰기 지연 발생
<a name="custom-nfs-settings-write-delays"></a>

사용자 정의 NFS 클라이언트 설정이 있고, Amazon EC2 인스턴스가 다른 Amazon EC2 인스턴스의 파일 시스템에 대해 수행되는 쓰기 작업을 확인하는 데 최대 3초가 걸립니다.

**취할 조치**

이 문제가 발생하면 다음 중 한 가지 방법으로 해결할 수 있습니다.
+ 데이터를 읽는 Amazon EC2 인스턴스의 NFS 클라이언트에 속성 캐싱이 활성화되어 있으면 파일 시스템을 탑재 해제합니다. 그런 다음 `noac` 옵션을 사용해 탑재 해제해 속성 캐싱을 비활성화합니다. NFSv4.1의 속성 캐싱은 기본적으로 활성화되어 있습니다.
**참고**  
클라이언트 측 캐싱을 비활성화하면 애플리케이션의 성능이 잠재적으로 저하될 수 있습니다.
+ 또한 NFS 프로시저와 호환되는 프로그래밍 언어를 사용하여 요청 시 속성 캐시를 지울 수도 있습니다. 이렇게 하려면 읽기 요청 직전에 `ACCESS` 프로시저 요청을 보낼 수 있습니다.

   예를 들어 Python 프로그래밍 언어를 사용하여 다음 호출을 구성할 수 있습니다.

  ```
  # Does an NFS ACCESS procedure request to clear the attribute cache, given a path to the file
  import os
  os.access(path, os.W_OK)
  ```

## Oracle Recovery Manager로 백업을 생성하는 속도가 느림
<a name="oracle-backup-slow"></a>

Oracle Recovery Manager가 120초 동안 중지된 후 백업 작업을 시작하는 경우 Oracle Recovery Manager를 사용하여 백업을 생성하는 속도가 느릴 수 있습니다.

**취할 조치**

이런 문제에 직면한 경우 Oracle 도움말 센터의 [NFS의 직접 NFS 클라이언트 제어 활성화 및 비활성화](https://docs.oracle.com/database/122/HPDBI/enabling-and-disabling-direct-nfs-client-control-of-nfs.htm)에 설명된 것처럼 Oracle Direct NFS를 비활성화합니다.

**참고**  
Amazon EFS는 Oralce Direct NFS를 지원하지 않습니다.