Skip to content

Hướng dẫn kiểm tra Disk I/O trên Proxmox + ZFS

Tài liệu này giúp xác định:

  • Disk có đang quá tải không?
  • VM nào đang gây I/O nhiều?
  • ZFS có phải bottleneck không?
  • ARC/L2ARC có hoạt động hiệu quả không?
  • SSD có dấu hiệu xuống cấp không?

1. Kiểm tra tổng quan Disk I/O

iostat

iostat -xz 1

Các chỉ số quan trọng:

Chỉ số Ý nghĩa Mức bình thường
%util Mức sử dụng disk <70% tốt, >90% đáng chú ý
await Thời gian chờ I/O SSD <2ms, SATA SSD <5ms
r/s Read IOPS Theo workload
w/s Write IOPS Theo workload
rkB/s Read throughput
wkB/s Write throughput
aqu-sz Độ dài queue Càng thấp càng tốt

Ví dụ tốt:

Device     r/s   w/s   rkB/s   wkB/s  await %util
sdh       120   90    5200    3100    0.8    18

Ví dụ xấu:

await = 35ms
%util = 100%

=> Disk đang nghẽn.


2. Xem VM nào đang dùng Disk nhiều nhất

iotop

iotop -oPa

hoặc

iotop -aoP

Ví dụ:

PID
64475
READ 18.7 MB/s
WRITE 1 MB/s

Tra VM:

cat /proc/64475/cmdline | tr '\0' ' '

hoặc

ps -fp 64475

pidstat

Theo dõi trung bình:

pidstat -d 1

Ví dụ:

PID

218511

read

6271 KB/s

write

10 KB/s

=> VM này đang đọc nhiều nhất.


3. Xem trạng thái ZFS

zpool status

zpool status

Kiểm tra:

  • DEGRADED
  • FAULTED
  • OFFLINE
  • resilver
  • scrub

Nếu xuất hiện:

errors:

=> cần kiểm tra ngay.


4. Theo dõi I/O của ZFS

zpool iostat -v 1

Ví dụ:

pool

read

28 MB/s

write

5 MB/s

Điều cần xem

Các disk có cân bằng không

Ví dụ đẹp:

sda 3.2 MB/s
sdb 3.5 MB/s
sdc 3.3 MB/s
...

Ví dụ xấu:

sda 20 MB/s

các ổ còn lại

2 MB/s

=> Có khả năng một disk chậm.


SLOG

Ví dụ:

logs

mirror

write

5 MB/s

Nếu mirror:

nvme0

2.5 MB/s

nvme1

2.5 MB/s

=> Bình thường.


L2ARC

cache

Có read/write là bình thường.


5. Kiểm tra ARC

cat /proc/spl/kstat/zfs/arcstats

Các chỉ số quan trọng:

ARC Size

size

Dung lượng ARC đang sử dụng.


ARC Max

c_max

Giới hạn ARC.

Ví dụ:

2 GB

Nếu server có:

128 GB RAM

thì khá thấp.


ARC Hit

hits

ARC Miss

misses

Hit Ratio:

hits

/
(hits+misses)

Đánh giá:

Hit Rate Đánh giá
>98% Rất tốt
95-98% Tốt
90-95% Chấp nhận
<90% Có thể tăng ARC

Metadata

arc_meta_used

Nếu metadata chiếm quá nhiều ARC thì cache dữ liệu sẽ ít hơn.


6. Kiểm tra L2ARC

Các chỉ số:

l2_hits
l2_misses

Hit Ratio:

l2_hits

/
(hits+misses)

Không cần quá cao.

Quan trọng là:

l2_io_error = 0
l2_cksum_bad = 0

7. Kiểm tra cấu hình ARC

cat /sys/module/zfs/parameters/zfs_arc_max

Ví dụ

2147483648

= 2GB

Kiểm tra file cấu hình:

grep zfs_arc /etc/modprobe.d/*.conf

8. Kiểm tra RAM

free -h

Nếu:

RAM Free

100GB

nhưng ARC chỉ:

2GB

=> Có thể tăng ARC.


9. Kiểm tra SMART SSD

smartctl -a /dev/sdX

Các thông số quan trọng:

SMART Ý nghĩa
Reallocated_Sector_Ct Bad sector
Current_Pending_Sector Sector lỗi
Runtime_Bad_Block Bad block
Wear_Leveling_Count Độ mòn SSD
Used_Rsvd_Blk_Cnt Spare block
Program_Fail Lỗi ghi
Erase_Fail Lỗi xóa
UDMA_CRC_Error_Count Lỗi cáp/backplane
Temperature Nhiệt độ
Total_LBAs_Written Tổng dữ liệu ghi

10. Kiểm tra Self-test

smartctl -l selftest /dev/sdX

Nếu:

Completed without error

=> Bình thường.


11. Kiểm tra độ trễ thực tế của pool

zpool iostat -v 1

Nếu cần phân tích sâu hơn:

zpool iostat -r 1

(ZFS mới hỗ trợ)

Có thể xem histogram latency.


12. Kiểm tra tiến trình ZFS

iotop -oPa

Các thread thường gặp:

txg_sync

=> Flush Transaction Group xuống pool.

z_rd_int

=> Thread đọc.

z_wr_int

=> Thread ghi.

jbd2

=> Journal của filesystem khác (ext4/xfs).


13. Checklist khi nghi ngờ Storage chậm

□ iostat -xz 1
    ├── %util
    ├── await
    ├── aqu-sz
    └── rkB/s wkB/s

□ iotop -oPa
    ├── VM nào đang đọc nhiều?
    └── VM nào đang ghi nhiều?

□ pidstat -d 1
    └── Trung bình I/O theo PID

□ zpool status
    ├── DEGRADED?
    ├── Resilver?
    └── Scrub?

□ zpool iostat -v 1
    ├── Disk có cân bằng?
    ├── SLOG hoạt động?
    └── L2ARC hoạt động?

□ ARC
    ├── size
    ├── c_max
    ├── hits
    └── misses

□ smartctl
    ├── Wear
    ├── Bad Block
    ├── CRC
    └── Temperature

Giá trị tham khảo nhanh

Chỉ số Tốt Cần chú ý
Disk %util <70% >90%
SSD await <2 ms (NVMe), <5 ms (SATA SSD) >10 ms kéo dài
ARC Hit Rate >95% <90%
L2ARC I/O Error 0 >0
SMART Reallocated Sector 0 >0
SMART Pending Sector 0 >0
SMART Runtime Bad Block 0 >0
SMART UDMA CRC Error 0 Tăng dần (kiểm tra cáp/backplane)
SSD Temperature 25–50°C >60°C kéo dài
ZFS Pool Status ONLINE DEGRADED / FAULTED