FSx for Lustre 파일 시스템의 성능을 개선하려면 어떻게 해야 하나요?

3분 분량
0

Amazon FSx for Lustre 파일 시스템의 성능을 개선하고 싶습니다.

해결 방법

파일 시스템 크기 늘리기

FSx for Lustre 파일 시스템이 지원하는 처리량은 스토리지 용량에 비례합니다.

처리량 용량 = 스토리지 용량 (TiB) * 단위 스토리지당 처리량(MBps)

예를 들어 단위 스토리지당 스토리지 용량이 4.8TiB이고 TiB당 처리량이 50MBps인 영구 파일 시스템의 경우 다음과 같습니다.

  • 집계 기준 디스크 처리량 240MBps
  • 버스트 디스크 처리량 1.152GiBps

Object Storage Target(OST)이 거의 가득 차면 파일 시스템을 읽거나 쓸 때 파일 시스템이 멈추거나 중단될 수 있습니다. 이 경우 파일 시스템의 크기를 늘리십시오.

불균형한 OST의 문제 해결

FSx for Lustre는 파일 시스템에 데이터를 저장하는 OST로 구성된 분산 파일 시스템입니다. OST 수와 각 OST의 크기를 보려면 클라이언트에서 다음 명령을 실행합니다.

$lfs df -h

불균형한 파일 시스템인 경우 다음과 비슷한 출력을 볼 수 있습니다.

UUID                 bytes   Used  Available Use%  Mounted on  
testfs-MDT0000_UUID  4.4G   214.5M   3.9G     4%   /mnt/testfs[MDT:0]  
testfs-MDT0001_UUID  4.4G   144.5M   4.0G     4%   /mnt/testfs[MDT:1]  
testfs-OST0000_UUID  2.0T   751.3G   1.1G    37%   /mnt/testfs[OST:0]  
testfs-OST0001_UUID  2.0T   755.3G   1.1G    37%   /mnt/testfs[OST:1]  
testfs-OST0002_UUID  2.0T     1.9T  55.1M    99%   /mnt/testfs[OST:2] <-  
testfs-OST0003_UUID  2.0T   751.3G   1.1G    37%   /mnt/testfs[OST:3]  
testfs-OST0004_UUID  2.0T   747.3G   1.1G    37%   /mnt/testfs[OST:4]  
testfs-OST0005_UUID  2.0T   743.3G   1.1G    36%   /mnt/testfs[OST:5]

filesystem summary: 11.8T     5.5T   5.7T    46%  /mnt/lustre

단일 OST의 사용 가능한 스토리지가 나머지 스토리지보다 상대적으로 작거나 클 수 있습니다. 이는 다음 조건 중 하나로 인해 발생합니다.

  • 새 OST가 추가되었으나 최적화가 완료되지 않았습니다.
  • 기본 스트라이프 개수인 1이 파일을 단일 OST에 배치합니다.

여러 OST가 가득 차면 파일 시스템의 스토리지 용량을 늘립니다. OST가 몇 개만 가득 차면 OST를 재조정합니다.

또한 스트라이핑 구성을 조정하여 공간을 확보하고 성능을 향상합니다. 크기에 따라 파일 레이아웃을 변경할 수 있는 Progressive File Layout(PFL) 구성을 설정할 수 있습니다. 예를 들어 레이아웃 구성을 지정하려면 lfs setstripe 명령과 -E 옵션을 사용하여 다양한 크기의 파일에 대한 레이아웃 구성 요소를 지정합니다.

lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32 /mountname/directory

참고:

  • PFL은 작은 파일에는 도움이 되지 않을 수 있습니다.
  • lfs setstripe 명령을 사용하여 새 파일 및 폴더에 대해서만 스트라이프 구성을 설정할 수 있습니다. 기존 파일 또는 폴더를 제거하려면 lfs migrate 명령을 사용해야 합니다.
  • 순차 읽기에는 스트라이핑의 이점이 없을 수 있습니다.

컴퓨팅 집약적인 워크로드에 더 큰 인스턴스 사용

집약적인 워크로드에는 메모리 또는 컴퓨팅 용량이 더 큰 인스턴스를 선택하십시오.

다음은 몇 가지 튜닝 모범 사례입니다.

1.    최적의 성능을 위해 대규모 클라이언트 인스턴스를 조정합니다.

메모리가 64GiB를 초과하는 클라이언트 인스턴스 유형에 다음 튜닝을 적용합니다.

lctl set_param ldlm.namespaces.*.lru_max_age=600000

CPU 코어가 64개가 넘는 클라이언트 인스턴스 유형에 다음 튜닝을 적용합니다.

echo "options ptlrpc ptlrpcd_per_cpt_max=32" >> /etc/modprobe.d/modprobe.conf  
echo "options ksocklnd credits=2560" >> /etc/modprobe.d/modprobe.conf  
         
# reload all kernel modules to apply the above two settings  
sudo reboot

2.    클라이언트가 마운트된 후 다음 튜닝을 적용합니다.

sudo lctl set_param osc.*OST*.max_rpcs_in_flight=32  
sudo lctl set_param mdc.*.max_rpcs_in_flight=64  
sudo lctl set_param mdc.*.max_mod_rpcs_in_flight=50

참고:

lctl set_param 명령은 재부팅 시 지속되지 않습니다. 이러한 매개 변수는 클라이언트 측에서 영구적으로 설정할 수 없습니다. 따라서 boot cron 작업을 구현하여 권장 튜닝으로 구성을 설정하는 것이 좋습니다.

관련 정보

집계 기준 및 버스트 처리량

성능 팁

AWS 공식
AWS 공식업데이트됨 10달 전