Thử nghiệm hiệu năng lưu trữ đối tượng với Cosbench

Cosbench là một công cụ mã nguồn mở do Intel phát triển, chuyên dùng để đánh giá hiệu năng của các hệ thống lưu trữ đối tượng như S3, Swift, CDMI và các nền tảng tương thích khác. Dưới đây là hướng dẫn triển khai và vận hành Cosbench trên môi trường Linux, kèm theo phân tích cấu hình chi tiết và cách diễn giải kết quả thử nghiệm.

Triển khai Cosbench trên CentOS 7.6

Trước khi cài đặt, đảm bảo hệ thống đã sẵn sàng các phụ thuộc cần thiết:

# Cài đặt JDK và công cụ mạng hỗ trợ
sudo yum install -y java-1.8.0-openjdk nmap-ncat

# Tải phiên bản ổn định (ví dụ: v0.4.2.c4)
wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip

# Giải nén và điều hướng vào thư mục gốc
unzip 0.4.2.c4.zip && cd 0.4.2.c4

Các tập lệnh khởi động được tổ chức rõ ràng trong thư mục gốc:

  • start-all.sh: Khởi chạy đồng thời controller và driver trên cùng một nút.
  • start-controller.sh / start-driver.sh: Khởi động riêng lẻ từng thành phần.
  • cli.sh: Giao diện dòng lệnh để gửi và quản lý workload.

Kích hoạt dịch vụ

Để tránh xung đột proxy, loại bỏ biến môi trường trước khi khởi động:

unset http_proxy https_proxy
sh start-all.sh

Sau khi thực thi, hệ thống sẽ khởi tạo hai tiến trình Java độc lập:

  • Controller lắng nghe tại cổng 19088 (giao diện web) và 19089 (console).
  • Driver lắng nghe tại cổng 1808818089, chịu trách nhiệm thực thi các tác vụ I/O.

Truy cập giao diện quản trị qua trình duyệt tại: http://<IP-máy-chủ>:19088/controller/.

Cấu hình workload mẫu cho S3

Tệp cấu hình XML xác định toàn bộ luồng kiểm thử — từ khởi tạo bucket đến dọn dẹp sau cùng. Ví dụ dưới đây mô tả một kịch bản đọc/ghi cân bằng trên nền tảng S3:

<?xml version="1.0" encoding="UTF-8"?>
<workload name="s3-stress-test" description="S3 throughput and latency benchmark">

  <storage type="s3" config="accesskey=AKIAEXAMPLE;secretkey=SECRETKEY;endpoint=https://s3.example.com:8443" />

  <workflow>
    <workstage name="setup">
      <work type="init" workers="1" config="cprefix=cosbench-bench;containers=r(1,3)" />
    </workstage>

    <workstage name="preload">
      <work type="prepare" workers="4" config="cprefix=cosbench-bench;containers=u(1,3);objects=r(1,50);sizes=c(128)KB" />
    </workstage>

    <workstage name="benchmark">
      <work name="io-loop" workers="16" runtime="120">
        <operation type="read" ratio="75" config="cprefix=cosbench-bench;containers=u(1,3);objects=u(1,50)" />
        <operation type="write" ratio="25" config="cprefix=cosbench-bench;containers=u(1,3);objects=u(51,100);sizes=c(256)KB" />
      </work>
    </workstage>

    <workstage name="teardown">
      <work type="cleanup" workers="2" config="cprefix=cosbench-bench;containers=r(1,3);objects=r(1,100)" />
      <work type="dispose" workers="1" config="cprefix=cosbench-bench;containers=r(1,3)" />
    </workstage>
  </workflow>
</workload>

Một số điểm quan trọng trong cấu hình:

  • cprefix: Tiền tố chung cho tên bucket và object — giúp phân biệt giữa các lần chạy.
  • containers=r(1,3): Tạo 3 bucket có tên lần lượt là cosbench-bench1, cosbench-bench2, cosbench-bench3.
  • objects=u(1,50): Truy cập ngẫu nhiên vào 50 object trong mỗi vòng lặp.
  • workers ở giai đoạn preparebenchmark ảnh hưởng trực tiếp đến mức độ tải đồng thời.

Khởi chạy và giám sát thử nghiệm

Có hai phương thức gửi workload:

1. Qua CLI:

./cli.sh submit s3-stress-test.xml
# Output: Accepted with ID: w5

2. Qua giao diện web: Upload tệp XML tại tab Workload → Submit.

Sau khi bắt đầu, trạng thái công việc hiển thị thời gian thực trên bảng điều khiển, bao gồm tiến độ từng giai đoạn và chỉ số hiệu năng tức thì.

Phân tích kết quả thử nghiệm

Kết quả cuối cùng cung cấp các chỉ số then chốt:

Chỉ số Ý nghĩa
Op-TypeLoại thao tác: read/write/delete
Op-CountTổng số yêu cầu hoàn tất
Avg-ProcTimeThời gian xử lý trung bình mỗi yêu cầu (ms) — thước đo độ trễ chính
ThroughputSố thao tác/giây — phản ánh khả năng xử lý song song
BandwidthTốc độ truyền dữ liệu trung bình (MB/s)
Succ-RatioTỷ lệ thành công (phần trăm), nên đạt ≥99.9% trong điều kiện ổn định

So sánh hiệu năng với RADOS

Để xác định điểm nghẽn hệ thống, có thể so sánh kết quả Cosbench với bài kiểm tra tầng lưu trữ cơ sở (RADOS). Ví dụ:

rados -p datapool bench 180 write --no-cleanup --concurrent-ios 128 -b 4M

Nếu thông lượng RADOS cao hơn đáng kể so với Cosbench khi sử dụng cùng backend, điều này gợi ý rằng lớp giao diện (ví dụ: S3 gateway) hoặc cấu hình mạng (ví dụ: giới hạn băng thông Gigabit) đang là nhân tố giới hạn.

Thẻ: cosbench object-storage s3 performance-testing CentOS

Đăng vào ngày 20 tháng 6 lúc 18:52