paint-brush
WARP 및 속도 테스트를 사용한 MinIO 벤치마킹by@minio
12,070
12,070

WARP 및 속도 테스트를 사용한 MinIO 벤치마킹

MinIO8m2023/11/08
Read on Terminal Reader

성능이 중요한 경우에는 가능한 최고의 성능을 달성하고 있다는 사실을 알아야 합니다.
featured image - WARP 및 속도 테스트를 사용한 MinIO 벤치마킹
MinIO HackerNoon profile picture
0-item
1-item


고객은 MinIO를 자신의 환경에 도입하여 물리적 또는 가상 하드웨어와 Kubernetes에서 실행되는 고성능 S3 호환 개체 스토리지를 확보합니다. 공개된 벤치마크 에서는 MinIO가 사용 가능한 개체 스토리지 중 가장 빠르지만 하드웨어와 네트워크의 속도에 따라 실행될 수 있음을 보여줍니다. 성능은 우리 팀의 큰 초점이므로 관리자가 MinIO를 최대한 활용할 수 있도록 최선을 다합니다. 기본 인프라가 MinIO를 최적으로 지원할 수 있는지 확인하기 위해 성능을 평가하고 잠재적인 병목 현상을 식별하는 두 가지 방법인 WARP와 속도 테스트를 제공합니다.


AI/ML, 고급 분석, 데이터베이스와 같은 최신 애플리케이션에는 고성능 개체 스토리지가 필요합니다. MinIO의 확장성과 고성능의 조합은 아무리 까다로운 작업이라도 모든 작업 부하를 처리할 수 있습니다. 성능이 중요한 경우에는 가능한 최고의 성능을 달성하고 있는지 알아야 합니다. WARP 및 Speedtest의 결과는 시간 경과에 따른 성능을 추적하고 심각한 문제로 발전하기 전에 잠재적인 문제를 사전에 찾아내는 데 사용될 수 있습니다.


WARP는 WARP 클라이언트와 개체 스토리지 호스트 간의 테스트를 수행하기 위해 구축된 모든 기능을 갖춘 오픈 소스 S3 성능 평가 소프트웨어입니다. WARP는 MinIO 클러스터에 대해 여러 클라이언트의 GET 및 PUT 성능을 측정합니다. WARP에는 명령줄이나 환경 변수로 구성된 다양한 옵션이 있어 워크로드에 맞는 테스트를 만들 수 있습니다. 기억하세요. 의미 있는 방식으로 성능을 평가하고 개체 스토리지가 작동하는 실제 조건을 나타내는 데이터와 워크로드를 사용하여 테스트하는 것이 절대적으로 중요합니다.


이와 대조적으로 Speedtest는 간소화된 경험과 간결한 결과를 제공하는 사용하기 쉬운 자동 성능 테스트입니다. 우리는 MinIO 관리자에게 단일 명령으로 MinIO 클러스터의 분산 성능 평가를 실행할 수 있는 기능을 제공하기 위해 11월에 Speedtest를 도입했습니다 . Speedtest는 PUTS를 실행한 다음 GETS를 실행하여 로드를 점진적으로 늘려 최대 집계 처리량을 정확히 찾아냅니다. 테스트는 MinIO 클러스터에 따라 실행하는 데 몇 초에서 몇 분 정도 걸릴 수 있습니다.


WARP와 속도 테스트에는 몇 가지 중요한 차이점이 있습니다. WARP는 WARP 클라이언트가 수행하는 작업을 통해 MinIO 클러스터의 성능을 테스트하는 완전한 도구입니다. 클라이언트 시스템은 네트워크를 통해 분산 MinIO 클러스터에 대한 객체의 PUTS 및 GETS를 수행합니다. 이로 인해 WARP는 예상되는 클라이언트-서버 성능을 테스트하기 위한 탁월한 메커니즘이 됩니다. 이와 대조적으로 Speedtest는 MinIO 인스턴스에서 실행되어 동일한 클러스터의 다른 MinIO 인스턴스에 대한 객체의 PUTS 및 GETS를 수행합니다. 따라서 Speedtest는 성능 방정식의 서버 측이 무엇을 할 수 있는지 알려줍니다.


WARP에는 객체 스토리지에 대해 실행하려는 거의 모든 테스트(GET, PUT, DELETE, LIST, STAT, RETENTION)가 포함되어 있으며, 테스트 실행에는 워크로드에 맞는 객체 크기의 사용자 지정 혼합이 포함될 수 있습니다. Speedtest는 설정된 테스트 매개변수를 통해 실행되어 최대 처리량을 신속하게 찾아냅니다. WARP에는 추가 소프트웨어가 필요하지만 Speedtest는 MinIO에 포함되어 있으며 mc 인터페이스 또는 MinIO 콘솔에서 실행할 수 있습니다. 문제 해결을 돕기 위해 고객은 클릭 한 번으로 속도 테스트 결과를 MinIO 엔지니어와 공유할 수 있습니다.

WARP: 완벽한 개체 스토리지 벤치마킹 도구

먼저 WARP를 살펴보자. WARP는 다양한 조건에서 MinIO 또는 S3 호환 개체 스토리지 성능을 철저하게 벤치마킹할 수 있는 도구입니다. 기본적으로 WARP는 분산 모드에서 실행되는 MinIO가 사용하는 모든 디스크에 대해 읽기 및 쓰기의 혼합 테스트를 수행합니다.


워프 흐름


이 데모의 경우. 우리는 분산 모드에서 AWS에서 실행되는 MinIO를 테스트하기 위해 WARP를 실행할 것입니다. 우리는 최근 이 작업을 자주 수행하고 있으므로 테스트를 통해 발견한 최고 성능 구성을 잠재 고객과 현재 고객에게 조언할 수 있습니다.


WARP는 GitHub 저장소 에 있으며, 여기에서 자세한 문서도 찾을 수 있습니다.


분산 모드 에서 MinIO를 배포하는 것부터 시작하겠습니다. MinIO를 다운로드하여 직접 환경에 설치할 수도 있고, 이 튜토리얼에 따라 AWS EC2에 MinIO를 설치할 수도 있습니다.


어느 쪽이든 분산형 MinIO 배포부터 시작하겠습니다.


MinIO 아키텍처


MinIO가 실행되면 WARP로 성능을 측정할 수 있으므로 시작해 보겠습니다.

0단계: Distributed MinIO를 사용하여 4개의 인스턴스(노드라고도 함)를 만듭니다.

모든 Amazon UI 또는 AWS CLI의 경우 이전 블로그 게시물 의 단계에 따라 인스턴스를 배포하되 추가 스토리지를 구성하지 마십시오. WARP를 실행하는 인스턴스는 객체를 빠르게 생성하고 PUT 및 GET 작업을 측정할 수 있을 만큼 강력해야 하지만 MinIO 노드에 필요한 스토리지 볼륨이 필요하지 않습니다.


인스턴스 생성

2단계: WARP 클라이언트의 /etc/hosts 파일에 호스트를 추가합니다.

  1. MinIO 인스턴스의 IP 주소 가져오기
  2. WARP 클라이언트의 IP 주소 가져오기
  3. /etc/hosts 파일에 해당 주소를 추가합니다.


 172.31.23.237 host1 172.31.26.78 host2 172.31.26.90 host3 172.31.19.110 host4 172.31.27.18 warp1 172.31.23.81 warp2 172.31.19.28 warp3 172.31.19.7 warp4


호스트를 연속적인 순서로 나열하고 작업하는 것이 좋습니다. 이를 통해 명령줄에서 WARP 실행이 단순화되고 각 WARP 클라이언트와 MinIO 호스트를 더 쉽게 찾을 수 있습니다.

3단계: 클라이언트에 WARP를 설치하고 실행합니다.

 [root@ip-172-31-19-7 ec2-user]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz 2022-02-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887] [root@ip-172-31-19-7 ec2-user]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz LICENSE README.md warp_logo.png warp [root@ip-172-31-19-7 ec2-user]# ./warp client warp: Listening on :7761


각 WARP 클라이언트는 포트 7761에서 수신 대기하고 있습니다.

4단계: WARP를 실행하고 혼합 벤치마크를 시작합니다.

 [root@ip-172-31-27-18 ec2-user]# WARP_ACCESS_KEY=minioadmin WARP_SECRET_KEY=minioadmin ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --concurrent 64 warp: Benchmark data written to "warp-remote-2022-02-08[201339]-qymu.csv.zst" Mixed operations. Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s. * Throughput: 39.90 obj/s Operation: GET, 45%, Concurrency: 256, Ran 1m54s. * Throughput: 10903.28 MiB/s, 178.64 obj/s Operation: PUT, 15%, Concurrency: 256, Ran 1m54s. * Throughput: 3628.27 MiB/s, 59.45 obj/s Operation: STAT, 30%, Concurrency: 256, Ran 1m54s. * Throughput: 119.98 obj/s Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s. warp: Cleanup done. [root@ip-172-31-27-18 ec2-user]#


WARP를 사용하여 기본 혼합 모드 성능 테스트를 완료했습니다. WARP를 시연하기 위해 혼합 모드 테스트를 사용했지만 일반적으로 혼합 모드를 실행하는 대신 개별 작업(GET, PUT, LIST)을 자체 테스트 실행으로 나누어 실제 사용에 더 부합하는 더 나은 결과를 얻을 수 있습니다. -모드 테스트.


더 많은 테스트 시나리오 실행에 대해 알아보려면 설명서를 참조하는 것이 좋습니다. 예를 들어 TLS 및 서버 측 암호화를 활성화하여 환경에 미치는 영향을 측정할 수 있습니다. 동시 테스트 수를 늘리면 인프라에 더 많은 스트레스를 줄 수 있습니다. 객체 크기를 무작위로 혼합하여 사용하거나 현재 환경 및 워크로드에 맞는 객체 크기를 지정할 수 있습니다. 위에서 한 것처럼 정의된 기간 동안 실행되거나 자동 종료되도록 테스트를 구성할 수 있습니다.


WARP 결과는 화면에 표시되며 zstandard를 사용하여 압축된 로컬 CSV 파일에 저장됩니다.

빠르고 쉬운 성능 평가를 위한 속도 테스트

WARP의 완전한 유연성을 원하지 않는 경우를 위해 Speedtest를 사용하여 MinIO 성능을 측정하는 빠르고 쉬운 방법을 구축했습니다. Speedtest는 가장 일반적으로 자동 조정 모드에서 실행되며, 최대 집계 처리량을 정확히 찾아내기 위해 로드를 점진적으로 늘립니다.


mc를 사용하여 Speedtest를 실행할 수 있습니다.

 $ mc support perf object <alias>


 [root@ip-172-31-77-115 ec2-user]# ./mc support perf object myminio THROUGHPUT IOPS PUT 2.4 GiB/s 38 objs/s GET 4.6 GiB/s 73 objs/s Speedtest: MinIO 2022-02-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads


또는 MinIO 클러스터에 대한 구성, 관리 및 보고를 위한 브라우저 기반 GUI인 MinIO 콘솔에서 Speedtest를 실행할 수 있습니다. 지원 메뉴로 이동하여 성능을 클릭한 다음 시작 버튼을 클릭하기만 하면 됩니다.


성능 검사


성능 테스트가 실행됩니다. 완료되면 집계된 GET 및 PUT 성능과 개별 노드의 성능이 표시됩니다.


Speedtest에 대한 자세한 내용과 예를 보려면 이 튜토리얼을 참조하세요.

워프 속도를 앞당기다!

지금 MinIO를 다운로드하여 시작해 보세요. Slack 커뮤니티 에 참여하고 다른 MinIO 사용자와 아이디어를 교환하세요. WARP 사용에 관해 구체적인 질문이 있는 경우 Slack 채널(Matt Sarrel 및 Cesar Celis)을 통해 문의하거나 [email protected]로 이메일을 보내주세요.


여기에도 게시되었습니다.