성능

이 페이지에서는 예상 평균 성능과 Filestore에 권장되는 성능 설정을 설명합니다. 또한 Filestore 인스턴스의 성능을 테스트하는 방법도 보여줍니다.

예상 성능

각 Filestore 서비스 등급은 성능 수준에 차이가 있습니다. 기본 등급은 10TiB 인스턴스 용량 이상으로 일관된 성능을 제공합니다. 엔터프라이즈 및 대규모 등급 인스턴스의 경우 용량이 확장되거나 축소됨에 따라 성능이 선형적으로 증가하거나 감소합니다.

인스턴스의 성능은 캐싱 사용, 클라이언트 VM의 머신 유형 및 테스트 중인 워크로드와 같은 다양한 요인으로 인해 보고된 수치와 다를 수 있습니다.

다음 표에서는 서비스 등급 및 구성된 용량에 따른 Filestore 인스턴스의 예상 성능을 보여줍니다.

성능 용량(TiB) 읽기/쓰기 IOPS 읽기/쓰기 Tput(MiB/s)
BASIC_HDD 1–10 600/1,000 100/100
BASIC_HDD 10–63.9 1,000/5,000 180/120
BASIC_SSD 2.5–63.9 60,000/25,000 1,200/350
HIGH_SCALE_SSD 10 90,000/26,000 2,600/880
HIGH_SCALE_SSD 100 920,000/260,000 26,000/8,800
ENTERPRISE 1 12,000/4,000 120/100
ENTERPRISE 10 120,000/40,000 1,200/1,000

엔터프라이즈 및 대규모 SSD 등급 성능 확장

엔터프라이즈 및 대규모 등급 인스턴스의 성능은 1TiB 및 2.5TiB 단위로 할당된 용량에 따라 선형적으로 확장됩니다. 다음 표는 각 2.5TiB의 용량에서 얻은 성능의 수준을 보여줍니다.

대규모

사양 최대 지속 IOPS1 최대 지속 Tput2(MiB/s)
2.5TiB당 읽기 23,000 650
2.5TiB당 쓰기 6,500 220

엔터프라이즈

사양 최대 지속 IOPS[^1] 최대 지속 Tput[^2](MiB/s)
1TiB당 읽기 12,000 120
1TiB당 쓰기 4,000 100

단일 및 소수의 클라이언트 시나리오에서는 최대 NFS 성능을 달성하기 위해 nconnect 마운트 옵션을 사용하여 TCP 연결 수를 늘려야 합니다. 대규모 등급의 경우 최대 7개의 연결을 지정하고, 엔터프라이즈 등급의 경우 최대 2개의 연결을 지정하는 것이 좋습니다. 일반적으로 파일 공유 용량이 크고 연결하는 클라이언트 VM의 수가 적을수록 nconnect와의 추가 연결을 지정하여 더 많은 성능을 얻을 수 있습니다.

권장 클라이언트 머신 유형

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

Linux 클라이언트 마운트 옵션

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

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

성능 테스트

Linux를 사용하는 경우 fio 도구를 사용하여 기본 등급 인스턴스의 읽기 및 쓰기 처리량과 IOPS를 벤치마킹할 수 있습니다. 이 섹션의 예시는 일반적으로 실행되는 벤치마크를 보여줍니다. 성능을 극대화하려면 여러 클라이언트 VM 인스턴스에서 fio를 실행해야 할 수 있습니다. 벤치마킹 성능을 위한 이 방법은 엔터프라이즈 및 대규모 등급 인스턴스의 결과를 정확하게 제공하지 않습니다.

다음 예는 최대 쓰기 처리량을 벤치마킹합니다.

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=write --blocksize=1m --iodepth=64 --readwrite=write

다음 예는 최대 쓰기 IOPS를 벤치마킹합니다.

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite

다음 예는 최대 읽기 처리량을 벤치마킹합니다.

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=read --blocksize=1m --iodepth=64 --readwrite=read

다음 예는 최대 읽기 IOPS를 벤치마킹합니다.

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randread --blocksize=4k --iodepth=256 --readwrite=randread

다음 단계


  1. 숫자는 4K 읽기/쓰기 IO를 기준으로 측정됩니다. 

  2. 숫자는 1백만 읽기/쓰기 IO를 기준으로 측정됩니다.