인스턴스 성능 정보

이 페이지에서는 Filestore 인스턴스에 사용할 수 있는 성능 옵션을 소개하고 성능을 최적화하기 위한 일반적인 권장사항을 제공합니다. Google Cloud 콘솔을 사용하여 영역 및 리전 인스턴스를 만들면 특정 워크로드 요구사항을 충족하기 위해 용량과 독립적으로 IOPS를 확장할 수 있도록 기본적으로 맞춤 성능이 사용 설정됩니다.

다음 표에는 맞춤 성능 설정에서 낮은 용량 범위와 높은 용량 범위의 성능 한도가 요약되어 있습니다.

용량 범위 서비스 등급 용량 TiB당 프로비저닝된 IOPS
용량 범위 감소 리전 (리전에서 소형 인스턴스 사용 가능) 100GiB~10,239GiB 4,000~17,000
리전별 (리전에서 소형 인스턴스를 사용할 수 없음) 1TiB~9.75TiB 4,000~17,000
영역 1TiB~9.75TiB 4,000~17,000
더 넓은 용량 범위 리전 10TiB~100TiB 3,000~7,500
영역 10TiB~100TiB 3,000~7,500

실적 계산 이해하기

다음 표에서는 TiB당 프로비저닝된 IOPS 및 할당된 용량을 기반으로 한 성능 계산을 보여줍니다. 계산은 다양한 용량 범위를 기반으로 TiB당 최소 및 최대 IOPS 값에 따라 읽기 IOPS, 쓰기 IOPS, 읽기 처리량, 쓰기 처리량 값이 어떻게 변하는지 보여줍니다.

자세한 내용은 읽기 및 쓰기 IOPS를 참고하세요.

용량 범위 TiB당 최소 및 최대
프로비저닝된 IOPS
용량 읽기 IOPS 쓰기 IOPS 읽기 처리량 (MiBps) 쓰기 처리량 (MiBps) 단일 클라이언트 읽기 처리량 (MiBps) 단일 클라이언트 쓰기 처리량 (MiBps)
낮은 용량 범위
(100GiB~10,239GiB)
4,000 100GiB 2,000* 600 47 16 47 16
600GiB 2,344 703 55 19 55 19
1,024GiB 4,000 1,200 94 32 94 32
10,239GiB 39,996 11,999 940 320 450 260
17,000 100GiB 2,000 600 47 16 47 16
600GiB 9,961 2,988 234 80 234 80
1,024GiB 17,000 5,100 400 136 400 136
10,239GiB 169,983 50,995 3,995 1,360 450 260
고용량 범위
(10TiB~100TiB)
3,000 10TiB 30,000 9,000명 705 240 705 240
7,500 100TiB 750,000 225,000 17,625 6,000 1,600 800

* 소용량 인스턴스 기능에 대한 액세스 권한에 따라 Filestore 리전 인스턴스의 하한 용량 범위는 100GiB~10,239GiB 또는 1TiB~9.75TiB일 수 있습니다. 자세한 내용은 소용량 Filestore 인스턴스를 참고하세요.

성능 확장

단일 및 소수의 클라이언트 시나리오에서는 최대 NFS 성능을 달성하기 위해 nconnect 마운트 옵션을 사용하여 TCP 연결 수를 늘려야 합니다.

특정 서비스 등급의 경우 클라이언트와 서버 간에 다음 연결 수를 지정하는 것이 좋습니다.

등급 용량 연결 수
리전, 영역 1~9.75TiB nconnect=2
리전, 영역 10~100TiB nconnect=7
Enterprise - nconnect=2
대규모 SSD - nconnect=7

일반적으로 파일 공유 용량이 크고 연결하는 클라이언트 VM의 수가 적을수록 nconnect와의 추가 연결을 지정하여 더 많은 성능을 얻을 수 있습니다.

권장 클라이언트 머신 유형

최소 16Gbps의 이그레스 대역폭을 제공하는 n2-standard-8과 같은 Compute Engine 머신 유형을 사용하는 것이 좋습니다. 이 이그레스 대역폭을 사용하면 클라이언트는 캐시에 적합한 워크로드에서 약 16Gbps의 읽기 대역폭을 달성할 수 있습니다. 추가 컨텍스트는 네트워크 대역폭을 참고하세요.

Linux 클라이언트 마운트 옵션

Linux 클라이언트 VM 인스턴스에서 최상의 성능을 얻으려면 다음 NFS 마운트 옵션, 특히 hard 마운트, async, rsizewsize 옵션을 사용하는 것이 좋습니다. NFS 마운트 옵션에 대한 자세한 내용은 nfs를 참고하세요.

기본 옵션 설명
hard NFS 클라이언트는 NFS 요청을 무제한으로 시도합니다.
timeo=600 NFS 클라이언트는 600데시초(60초) 간격으로 NFS 요청을 다시 시도합니다.
retrans=3 NFS 클라이언트는 NFS 요청을 3회 시도한 후 추가 복구 작업을 수행합니다.
rsize=524288 NFS 클라이언트는 NFS 서버로부터 READ 요청당 최대 524,288바이트를 수신할 수 있습니다.
참고: 기본 등급 인스턴스의 경우 rsize 값을 1048576로 설정합니다.
wsize=524288 NFS 클라이언트는 WRITE 요청당 NFS 서버에 최대 524,288바이트를 보낼 수 있습니다.
resvport NFS 클라이언트는 이 마운트 지점에 대해 NFS 서버와 통신할 때 권한이 있는 소스 포트를 사용합니다.
async NFS 클라이언트는 특정 조건이 충족될 때까지 NFS 서버에 대한 애플리케이션 쓰기 전송을 지연합니다.
주의: sync 옵션을 사용하면 성능이 크게 저하됩니다.

read_ahead_kb 매개변수로 NFS 읽기 처리량 최적화

NFS read_ahead_kb 매개변수는 순차 읽기 작업 중에 Linux 커널이 미리 가져와야 하는 데이터의 양을 킬로바이트 단위로 지정합니다. 따라서 후속 읽기 요청은 메모리에서 직접 처리하여 지연 시간을 줄이고 전반적인 성능을 개선할 수 있습니다.

Linux 커널 버전 5.4 이상에서는 Linux NFS 클라이언트가 기본 read_ahead_kb 값인 128KB를 사용합니다. 순차 읽기 처리량을 개선하려면 이 값을 20MB로 늘리는 것이 좋습니다.

Linux 클라이언트 VM에 파일 공유를 성공적으로 마운트한 후 다음 스크립트를 사용하여 read_ahead_kb 매개변수 값을 수동으로 조정할 수 있습니다.

mount_point=MOUNT_POINT_DIRECTORY
device_number=$(stat -c '%d' $mount_point)
((major = ($device_number & 0xFFF00) >> 8))
((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00)))
sudo bash -c "echo 20480 > /sys/class/bdi/$major:$minor/read_ahead_kb"

다음을 바꿉니다.

MOUNT_POINT_DIRECTORY는 파일 공유가 마운트된 디렉터리의 경로입니다.

단일 및 다중 클라이언트 VM 성능

Filestore의 확장 가능한 서비스 등급은 단일 클라이언트 VM이 아닌 여러 클라이언트 VM에 맞춰 성능이 최적화되어 있습니다.

영역, 리전, 엔터프라이즈 인스턴스의 경우 전체 성능을 활용하려면 최소 4개의 클라이언트 VM이 필요합니다. 이렇게 하면 기본 Filestore 클러스터의 모든 VM이 완전히 활용됩니다.

추가 컨텍스트를 제공하자면 확장 가능한 가장 작은 Filestore 클러스터에는 4개의 VM이 있습니다. 각 클라이언트 VM은 nconnect 마운트 옵션을 사용하여 지정된 클라이언트별 NFS 연결 수와 관계없이 하나의 Filestore 클러스터 VM과만 통신합니다. 단일 클라이언트 VM을 사용하는 경우 읽기 및 쓰기 작업은 단일 Filestore 클러스터 VM에서만 실행됩니다.

용량 기반 성능 한도

용량 기반 한도는 기본 등급과 같이 맞춤 성능을 지원하지 않는 서비스 등급이나 맞춤 성능을 수동으로 비활성화한 인스턴스에 적용됩니다.

각 Filestore 서비스 등급은 성능 수준이 다르며, 캐싱 사용, 클라이언트 VM 수, 클라이언트 VM의 머신 유형, 테스트된 워크로드와 같은 요인에 따라 달라질 수 있습니다.

다음 표에는 각 서비스 등급의 최소 및 최대 용량을 설정할 때 달성할 수 있는 최대 성능이 나와 있습니다. 모든 표 값은 추정 한도입니다.

서비스 등급 용량 읽기 IOPS 쓰기 IOPS 읽기 처리량 (MiBps) 쓰기 처리량 (MiBps) 단일 클라이언트 읽기 처리량 (MiBps) 단일 클라이언트 쓰기 처리량 (MiBps)
영역 1TiB 9,200 2,600 260 88 260 88
9.75TiB 89,700 25,350 2,535 858 450 260
10TiB 92,000 26,000 2,600 880 1,600 800
100TiB 920,000 260,000 26,000 8,800 1,600 800
리전 1TiB 12,000 4,000 120 100 120 100
9.75TiB 117,000 39,000 1,170 975 450 260
10TiB 92,000 26,000 2,600 880 1,600 800
100TiB 920,000 260,000 26,000 8,800 1,600 800
Enterprise 1TiB 12,000 4,000 120 100 120 100
10TiB 120,000 40,000 1,200 1,000 450 260
기본 HDD 1TiB~10TiB 600 1,000 100 100 100 100
10TiB~63.9TiB 1,000 5,000 180 120 180 120
기본 SSD 2.5TiB~63.9TiB 60,000 25,000 1,200 350 1,200 350

Google Cloud 리소스 전반의 성능 개선

Google Cloud CLI를 사용하여 Cloud Storage에서 Filestore 인스턴스로 데이터를 복사하는 등 여러 Google Cloud 리소스에 걸친 작업은 속도가 느릴 수 있습니다. 성능 문제를 완화하려면 다음을 시도해 보세요.

  • Cloud Storage 버킷, 클라이언트 VM, Filestore 인스턴스가 모두 동일한 리전에 있는지 확인합니다.

    이중 리전은 Cloud Storage에 저장된 데이터를 위한 최대 성능 옵션을 제공합니다. 이 옵션을 사용하는 경우 다른 리소스가 이중 리전에 포함된 단일 리전 중 하나에 있어야 합니다. 예를 들어 Cloud Storage 데이터가 us-central1,us-west1에 있는 경우 클라이언트 VM과 Filestore 인스턴스가 us-central1에 있는지 확인합니다.

  • 참고용으로 Persistent Disk (PD)가 연결된 VM의 성능을 확인하고 Filestore 인스턴스의 성능과 비교합니다.

    • Filestore 인스턴스와 비교할 때 PD 연결 VM의 성능이 비슷하거나 느리면 Filestore와 관련 없는 성능 병목 현상이 나타날 수 있습니다. Filestore가 아닌 리소스의 기준 성능을 개선하려면 병렬 복합 업로드와 연결된 gcloud CLI 속성을 조정하면 됩니다. 자세한 내용은 도구 및 API에서 동시 복합 업로드를 사용하는 방법을 참고하세요.
    • Filestore 인스턴스의 성능이 PD 연결 VM보다
      현저히 느리면 작업을 여러 VM에 분산하여 Cloud Storage의 읽기 작업 성능을 개선해 보세요.

다음 단계