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