paint-brush
Đo điểm chuẩn MinIO với WARP và Speedtesttừ tác giả@minio
12,640 lượt đọc
12,640 lượt đọc

Đo điểm chuẩn MinIO với WARP và Speedtest

từ tác giả MinIO8m2023/11/08
Read on Terminal Reader

dài quá đọc không nổi

Khi hiệu suất là quan trọng, bạn cần biết rằng bạn đang đạt được hiệu suất tốt nhất có thể.
featured image - Đo điểm chuẩn MinIO với WARP và Speedtest
MinIO HackerNoon profile picture
0-item
1-item


Khách hàng đưa MinIO vào môi trường của họ để có được bộ lưu trữ đối tượng tương thích với S3 hiệu suất cao chạy trên mọi phần cứng vật lý hoặc ảo và Kubernetes. Điểm chuẩn được công bố của chúng tôi chứng minh rằng MinIO là bộ lưu trữ đối tượng nhanh nhất hiện có nhưng nó chỉ có thể chạy nhanh như phần cứng và mạng mà bạn cung cấp. Nhóm của chúng tôi luôn chú trọng đến hiệu suất, vì vậy, chúng tôi làm mọi thứ có thể để giúp quản trị viên tận dụng tối đa MinIO. Để xác minh rằng cơ sở hạ tầng cơ bản có thể hỗ trợ MinIO một cách tối ưu, chúng tôi cung cấp hai phương pháp để đánh giá hiệu suất và xác định các điểm nghẽn tiềm ẩn: WARP và Speedtest.


Các ứng dụng hiện đại như AI/ML, phân tích nâng cao và cơ sở dữ liệu yêu cầu lưu trữ đối tượng hiệu suất cao. Sự kết hợp giữa khả năng mở rộng và hiệu suất cao của MinIO giúp mọi khối lượng công việc, dù đòi hỏi khắt khe đến đâu, đều nằm trong tầm tay. Khi hiệu suất là quan trọng, bạn cần biết rằng bạn đang đạt được hiệu suất tốt nhất có thể. Kết quả từ WARP và Speedtest có thể được sử dụng để theo dõi hiệu suất theo thời gian và chủ động xác định các vấn đề tiềm ẩn trước khi chúng phát triển thành các vấn đề nghiêm trọng.


WARP là phần mềm đánh giá hiệu suất S3 đầy đủ tính năng nguồn mở được xây dựng để tiến hành kiểm tra giữa máy khách WARP và máy chủ lưu trữ đối tượng. WARP đo lường hiệu suất GET và PUT từ nhiều máy khách dựa trên cụm MinIO. WARP có nhiều tùy chọn, được định cấu hình bằng dòng lệnh hoặc biến môi trường, cho phép bạn tạo các thử nghiệm phù hợp với khối lượng công việc của mình. Hãy nhớ - điều cực kỳ quan trọng là phải đánh giá hiệu suất một cách có ý nghĩa và kiểm tra bằng cách sử dụng dữ liệu cũng như khối lượng công việc thể hiện các điều kiện trong thế giới thực mà bộ lưu trữ đối tượng của bạn hoạt động.


Ngược lại, Speedtest là một bài kiểm tra hiệu suất tự động dễ sử dụng, mang lại trải nghiệm hợp lý và kết quả ngắn gọn. Chúng tôi đã giới thiệu Speedtest vào tháng 11 để cung cấp cho quản trị viên MinIO khả năng chạy đánh giá hiệu suất phân tán của các cụm MinIO của họ bằng một lệnh duy nhất. Speedtest chạy PUTS, sau đó GETS, tăng dần tải để xác định thông lượng tổng hợp tối đa. Quá trình kiểm tra có thể mất từ vài giây đến vài phút để thực hiện tùy thuộc vào cụm MinIO của bạn.


Có một số khác biệt quan trọng giữa WARP và Speedtest. WARP là một công cụ hoàn chỉnh để kiểm tra hiệu suất của cụm MinIO của bạn thông qua các hoạt động do máy khách WARP thực hiện. Các máy khách đang tiến hành PUTS và GETS các đối tượng trên mạng tới cụm MinIO phân tán của bạn. Điều này làm cho WARP trở thành một cơ chế tuyệt vời để kiểm tra hiệu năng máy khách-máy chủ dự kiến. Ngược lại, Speedtest chạy trên các phiên bản MinIO để tiến hành PUTS và GETS của các đối tượng đến các phiên bản MinIO khác trong cùng một cụm. Do đó, Speedtest sẽ cho bạn biết khả năng của phía máy chủ trong phương trình hiệu suất.


WARP chỉ chứa mọi thử nghiệm (GET, PUT, DELETE, LIST, STAT, RETENTION) mà bạn có thể muốn chạy trên bộ nhớ đối tượng và các lần chạy thử nghiệm có thể bao gồm kết hợp tùy chỉnh các kích thước đối tượng để phù hợp với khối lượng công việc của bạn. Speedtest chạy qua các thông số kiểm tra đã đặt để xác định thông lượng tối đa một cách nhanh chóng. Trong khi WARP yêu cầu phần mềm bổ sung, Speedtest được bao gồm trong MinIO và có thể chạy từ giao diện mc hoặc Bảng điều khiển MinIO. Để hỗ trợ khắc phục sự cố, khách hàng có thể chia sẻ kết quả Speedtest với các kỹ sư của MinIO chỉ bằng một cú nhấp chuột.

WARP: Công cụ đo điểm chuẩn lưu trữ đối tượng hoàn chỉnh

Đầu tiên, chúng ta hãy nhìn vào WARP. WARP là một công cụ cho phép bạn đánh giá kỹ lưỡng hiệu suất của MinIO hoặc bất kỳ đối tượng lưu trữ tương thích với S3 nào trong nhiều điều kiện khác nhau. Theo mặc định, WARP sẽ thực hiện kiểm tra hỗn hợp việc đọc và ghi trên tất cả các đĩa được MinIO sử dụng đang chạy ở chế độ phân tán.


Dòng chảy dọc


Đối với bản demo này. chúng tôi sẽ chạy WARP để kiểm tra MinIO chạy trên AWS ở chế độ phân tán. Gần đây, chúng tôi đã thực hiện việc này khá thường xuyên, vì vậy, chúng tôi có thể tư vấn cho khách hàng tiềm năng và khách hàng hiện tại về các cấu hình có hiệu suất cao nhất mà chúng tôi đã tìm thấy bằng cách thử nghiệm chúng.


WARP được đặt trong kho lưu trữ GitHub , nơi bạn cũng sẽ tìm thấy tài liệu chi tiết.


Chúng ta sẽ bắt đầu bằng cách triển khai MinIO ở chế độ phân tán . Bạn có thể tải xuống MinIO và tự cài đặt nó trong môi trường của mình hoặc bạn có thể làm theo hướng dẫn này để cài đặt MinIO trên AWS EC2 .


Dù bằng cách nào, chúng ta sẽ bắt đầu với việc triển khai MinIO phân tán:


Kiến trúc MiniIO


Sau khi MinIO thiết lập và chạy, bạn sẽ có thể đo hiệu suất bằng WARP, vì vậy hãy bắt đầu.

Bước 0: Tạo 4 phiên bản (còn được gọi là nút) với MinIO phân tán.

Đối với tất cả Amazon UI hoặc AWS CLI, vui lòng làm theo các bước từ bài đăng blog trước đó để triển khai các phiên bản nhưng không định cấu hình bộ nhớ bổ sung. Các phiên bản chạy WARP phải đủ mạnh để nhanh chóng tạo đối tượng và đo lường các hoạt động PUT và GET, nhưng không yêu cầu dung lượng lưu trữ mà nút MinIO cần.


Tạo phiên bản

Bước 2: Thêm máy chủ trong tệp /etc/hosts tại máy khách WARP.

  1. Nhận địa chỉ IP của phiên bản MinIO
  2. Nhận địa chỉ IP của máy khách WARP
  3. Thêm các địa chỉ đó vào tệp /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


Lưu ý rằng chúng tôi khuyên bạn nên liệt kê và làm việc với các máy chủ theo thứ tự liên tiếp. Điều này giúp đơn giản hóa việc khởi chạy WARP từ dòng lệnh và giúp định vị từng máy khách WARP và máy chủ MinIO dễ dàng hơn.

Bước 3: Cài đặt WARP trên máy khách và chạy nó.

 [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


Lưu ý rằng mỗi máy khách WARP đang nghe trên cổng 7761

Bước 4: Chạy WARP và khởi chạy điểm chuẩn hỗn hợp.

 [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]#


Bạn đã hoàn thành bài kiểm tra hiệu suất ở chế độ hỗn hợp cơ bản bằng WARP. Mặc dù chúng tôi sử dụng thử nghiệm ở chế độ hỗn hợp để chứng minh WARP, nhưng thông thường, bạn sẽ thu được kết quả tốt hơn, phù hợp hơn với cách sử dụng trong thế giới thực) bằng cách chia nhỏ các hoạt động riêng lẻ (GET, PUT, LIST) thành các lần chạy thử nghiệm riêng thay vì chạy một thử nghiệm hỗn hợp. -chế độ kiểm tra.


Chúng tôi khuyến khích bạn tham khảo tài liệu để tìm hiểu về cách thực hiện nhiều kịch bản thử nghiệm hơn. Ví dụ: bạn có thể bật TLS và mã hóa phía máy chủ để đo lường tác động của chúng trong môi trường của bạn. Bạn có thể gây áp lực lên cơ sở hạ tầng nhiều hơn bằng cách tăng số lượng thử nghiệm đồng thời. Bạn có thể sử dụng kết hợp ngẫu nhiên các kích thước đối tượng hoặc chỉ định kích thước đối tượng phù hợp với môi trường và khối lượng công việc hiện tại của bạn. Bạn có thể định cấu hình các thử nghiệm để chạy trong một khoảng thời gian xác định hoặc tự động chấm dứt như chúng tôi đã làm ở trên.


Kết quả WARP được hiển thị trên màn hình và được lưu vào tệp CSV cục bộ được nén bằng zstandard.

Speedtest để đánh giá hiệu suất nhanh chóng và dễ dàng

Trong trường hợp bạn không muốn có sự linh hoạt hoàn toàn của WARP, chúng tôi đã xây dựng một cách nhanh chóng và dễ dàng để đo hiệu suất MinIO bằng Speedtest. Speedtest thường được chạy nhất ở chế độ tự động điều chỉnh, tăng dần tải để xác định thông lượng tổng hợp tối đa.


Bạn có thể dùng mc để chạy 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


Hoặc, bạn có thể chạy Speedtest từ MinIO Console, GUI dựa trên trình duyệt để định cấu hình, quản lý và báo cáo về các cụm MinIO. Chỉ cần điều hướng đến menu Hỗ trợ và nhấp vào Hiệu suất, sau đó nhấp vào nút bắt đầu.


Kiểm tra hiệu suất


Bài kiểm tra hiệu suất sẽ chạy. Khi hoàn tất, hiệu suất GET và PUT tổng hợp cũng như hiệu suất của các nút riêng lẻ sẽ được hiển thị.


Để biết thêm chi tiết và ví dụ về Speedtest, vui lòng xem hướng dẫn này.

Tốc độ cong vênh phía trước!

Hãy bắt đầu bằng cách tải xuống MinIO ngay hôm nay. Tham gia cộng đồng Slack của chúng tôi và trao đổi ý tưởng với những người dùng MinIO khác. Nếu bạn có bất kỳ câu hỏi cụ thể nào về việc sử dụng WARP, vui lòng liên hệ với chúng tôi trên kênh Slack của chúng tôi (Matt Sarrel và Cesar Celis) hoặc gửi email cho chúng tôi theo địa chỉ [email protected].


Cũng được xuất bản ở đây .