부스트를 통한 HTTP 검색 벤치마크
부스트(Boost)는 최근 부스터-http(booster-http)를 통해 스토리지 제공자가 (전체 조각 검색 및 범위 요청) HTTP 검색을 제공하도록 하는 기능을 출시했다. 파일코인 에버그린(Filecoin Evergreen), 영구적인 스토리지 계획 혹은 스토리지 계약 복제에 대해 작업하는 에코시스템 파트너는 전체 조각 검색이 이러한 노력을 효율적으로 증진한다고 말했다. 추가로, 범위 요청을 할 수 있는데 즉, 클라이언트가 전체 조각 검색에서 범위를 선택할 수 있다.
부스터-http에 대한 부하 테스트를 수행했고 이러한 발견이 스토리지 제공자가 부스트를 통한 HTTP 검색을 더 잘 이해하도록 도와줄 것이라는 희망으로 결과를 공유한다. 누구나 부하 테스트 도구를 다운받고 스스로 실행할 수 있다.
환경
이 HTTP 부하 테스트의 경우, 팀의 생산 등급 페타바이트 규모 스토리지 제공업체인 필콜린스(filcollins)에서 테스트했다. 밑에 필콜린스에 대한 하드웨어 세부 사항이 있다(2 cpu 인스턴스 및 2 gpu 인스턴스).
CPU 인스턴스 타입
CPU
모델명: AMD EPYC 7F32 8-Core Processor
스토리지
5 x 1.8TB HDD, 스트립드 배열(striped array)로 실행, 스크래치 영역(scratch area)에 대해 지정
2 x NVMe, 스트립드 배열(striped array)로 실행, 스크래치 영역(scratch area)에 대해 지정
메모리
1TB RAM
GPU 인스턴스 타입
CPU
모델명: Intel® Xeon® Gold 6242 CPU @ 2.80GHz
메모리
502 GB RAM
GPU
4 x NVIDIA Quadro RTX 6000 (24 GB GDDR6)
스토리지
sealed/unsealed 부분의 장기 스토리지에 대해 지정된 500 TB Ceph 시스템
3 x 900 GB HDD, 스트립드 배열(striped array)로 실행, 스크래치 영역(scratch area)에 대해 지정
부하 테스트 과정
HTTP 벤치마크 테스트를 설정하는 과정 면에서 10기가비트와 1기가비트 연결을 고무시키기 위해 아웃바운드 연결에 인위적인 제한을 생성했다. 단방향 지연율 40ms를 설정하고 K6라고 불리는 부하 테스트 프레임워크를 사용하여 다운로드를 증진했다.
변화하는 병행성을 통해 두 가지 시나리오를 테스트했다: 미가공 검색 및 부스트 검색.
- 미가공: NGinx가 부스트 혹은 파일코인의 관여 없이 디스크로부터 직접 파일 제공
- 부스트: 부스터-http
해당 프로토콜은 두 가지 주요 모드에서 테스트했다: 전체 가져오기(full-fetch) 및 범위 요청
- 전체 가져오기는 전체 파일코인 조각 검색을 의미한다.
- 범위 요청은 전체 파일코인 조각 내의 콘텐츠에 특정 범위 검색을 의미한다. 이 부하 테스트의 경우 1MiB, 10MiB, 100MiB 간에 테스트했다.
결과
전체 조각 검색
전체 조각 검색에 대한 1GB 및 10GB의 부하 테스트 결과는 서로 유사하다. 지연율에 약간의 차이가 있지만 큰 변화는 아니다(모두 1초 내).
범위 요청
범위 요청에 대한 1GB 및 10GB의 부하 테스트는 더 낮은 병행성에 유사한 결과를 산출했다. 미가공 검색 및 부스터-http 간의 차이는 그렇게 크지 않았다(1초 내).
하지만 병행성이 1000으로 올라가면서 부스트 범위 요청 검색은 매우 느린 것을 볼 수 있으며(10GB 연결의 경우 더 큰 데이터 범위에 대해 최대 10분까지 느려진다), 성공률은 HTTPS 검색에 비교했을 때 떨어진다(60%에서 40% 성공률). 특히 높은 병행 요청이 있을 때 부스트가 요청에 응답하는 시간이 느려진다.
팀은 왜 이런 사례가 나타나는지에 대해 문제를 조사했다. 이 기능 저하는 높은 병행률 수준에서만 나타난다. 다른 스토리지 제공자가 유사한 행동을 관찰하거나 현 수준 혹은 더 높은 병행률을 필요로 하는 사용사례를 겪는다면 공유했으면 한다. 추가로 테스트를 돕고 싶다면 팀과 연락을 취하십시오. 깃헙 혹은 파일코인 슬랙의 #boost-help 채널을 방문하십시오.
보다 다양한 정보 및 방송 관련 소식은
공식 SNS 채널을 통해 확인할 수 있습니다.