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 scriptbench-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 , -g | Biểu đồ 2D, 2D-numjobs, 3D hoặc Line chart |
--group-bars | Gộ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-total | Tính tổng IOPS/Latency trong workload randrw |
--colors | Gán màu dòng/biểu đồ cụ thể |
--enable-markers | Hiện dấu marker để dễ phân biệt trên line chart |
--show-cpu , --show-ss | Hiể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
- GitHub: https://github.com/louwrentius/fio-plot
- FIO: https://github.com/axboe/fio
- Blog gốc tác giả: https://louwrentius.com