No menu items!
No menu items!
More

    Công cụ tạo biểu đồ trực quan từ kết quả benchmark FIO

    1. Tổng quan.

    Khi đánh giá hiệu năng hệ thống lưu trữ (SSD, RAID, NVMe…), FIO là một trong những công cụ benchmark phổ biến nhất. Tuy nhiên, đầu ra của FIO (FIO output) thường rất nhiều thông tin dạng văn bản hoặc JSON, khó phân tích trực quan. Đây là lúc fio-plot trở thành trợ thủ đắc lực.

    Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách cài đặt, sử dụng và tận dụng fio-plot để tạo biểu đồ 2D, 3D, so sánh nhiều thiết bị lưu trữ, phân tích theo thời gian, theo số lượng job hoặc queue depth.

    🔧 2. fio-plot là gì?

    fio-plot là một công cụ Python giúp bạn:

    • Trích xuất dữ liệu từ kết quả FIO (JSON hoặc log .csv).
    • Hiển thị trực quan hiệu năng IOPS / độ trễ (latency) thông qua biểu đồ 2D, 3D, line chart, histogram…
    • Có thể tự động chạy benchmark với bench-fio và trích xuất dữ liệu.

    ⚙️ 2. Hướng dẫn cài đặt

    Yêu cầu hệ thống:

    • Python ≥ 3.6
    • Gói thư viện: matplotlib >= 3.3.0, numpy, Pillow
    • Ubuntu:
    sudo apt install zlib1g-dev libjpeg-dev python3-pip
    

    Cài bằng pip:

    pip3 install fio-plot
    

    Hoặc chạy trong Virtualenv:

    cd /opt/tools/
    python3 -m venv fio-plot
    source fio-plot/bin/activate
    pip install fio-plot
    

    ▶️ 3. Quy trình sử dụng

    • Benchmark thiết bị bằng fio hoặc script bench-fio.
    • Trích xuất dữ liệu đầu ra định dạng JSON hoặc log CSV.
    • Tạo biểu đồ với fio-plot.

    📘 4. Một số ví dụ biểu đồ thực tế

    🔸 Biểu đồ 2D theo queue depth

    fio-plot -i data_folder -T "INTEL D3-S4610 SSD" -l -r randread
    

    Hiển thị IOPS và Latency theo queue depth (iodepth).

    🔸 Biểu đồ 2D theo số lượng job song song

    fio-plot -i data_folder -T "INTEL D3-S4610 SSD" -N -r randread
    

    🔸 So sánh nhiều thiết bị SSD

    fio-plot -i INTEL_D3-S4610 SAMSUNG_860_PRO KINGSTON_DC500M \
      --source "https://louwrentius.com" \
      -T "So sánh hiệu năng SSD" -C -r randread
    

    🔸 Biểu đồ 3D (Iops theo iodepth và numjobs)

    fio-plot -i RAID10 -T "RAID10 8x Velociraptor" -L -t iops -r randread
    

    🔸 Line Chart theo thời gian

    fio-plot -i SSD1/ SSD2/ SSD3/ -T "IOPS theo thời gian" -g -t iops -r randread
    

    🔸 Latency histogram

    fio-plot -i SAMSUNG_860_PRO/ -T "Histogram SSD latency" -H -r randread -d 16 -n 16
    

    📁 5. Chạy tự động benchmark bằng bench-fio

    Ví dụ chạy benchmark RAID:

    bench-fio --target /dev/md0 --type device --template fio-job-template.fio \
      --mode randrw --output RAID_ARRAY --readmix 75 90 --destructive
    

    Tham số kiểm thử:

    • Queue depth: 1 2 4 8 16 32 64
    • Numjobs: 1 2 4 8 16 32 64
    • Block size: 4k
    • Read/write mix: 75/25, 90/10

    🛠 6. Các tùy chọn nâng cao hữu ích

    Tham sốMô tả
    -l, -N, -L, -gBiểu đồ 2D, 2D-numjobs, 3D hoặc Line chart
    --group-barsGộp IOPS và Latency trên cùng cột
    --xlabel-parent <int>Hiển thị nhãn thư mục cha để phân biệt kết quả
    --draw-totalTính tổng IOPS/Latency trong workload randrw
    --colorsGán màu dòng/biểu đồ cụ thể
    --enable-markersHiện dấu marker để dễ phân biệt trên line chart
    --show-cpu, --show-ssHiển thị CPU usage hoặc steady state stats nếu có

    🖼 7. Biểu đồ mẫu

    Gợi ý: Bạn có thể nhúng hình ảnh biểu đồ tạo bởi fio-plot để minh họa thêm trực quan trên blog.

    🔚 Kết luận

    fio-plot là công cụ rất mạnh mẽ và trực quan dành cho:

    • Các kỹ sư hệ thống, DevOps, quản trị lưu trữ.
    • Kiểm thử và báo cáo hiệu năng thiết bị (SSD, RAID, NAS…).
    • Viết tài liệu kỹ thuật, báo cáo cho khách hàng hoặc cấp quản lý.

    ✅ Tích hợp FIO + Fio-plot giúp bạn tự động hóa toàn bộ pipeline benchmark → trực quan hóa chỉ với vài dòng lệnh.

    🔗 Tài nguyên tham khảo

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email