
Mục lục bài viết 10 phần
RoCEv2 đưa RDMA qua UDP/IP nhưng nhạy với congestion, loss và cấu hình QoS không nhất quán. Một fabric có thể đạt throughput cao với vài flow nhưng xuất hiện PFC storm, head-of-line blocking hoặc tail latency tăng mạnh khi nhiều accelerator đồng thời incast. Acceptance test phải quan sát cả host, switch queue và traffic end-to-end.
Bài viết giúp bạn
- RoCEv2 cần trả lời câu hỏi nào
- Topology và điểm quan sát
- Traffic profile và biến số phải khóa
RoCEv2 cần trả lời câu hỏi nào
#RoCEv2 encapsulates RDMA transport trong UDP/IP, cho phép routing nhưng không tự biến Ethernet thành lossless. PFC có thể tạm dừng theo priority; ECN đánh dấu congestion để endpoint phản ứng; thuật toán congestion control và buffer policy quyết định kết quả thực tế. Dùng PFC quá nhiều có thể truyền nghẽn sang upstream và ảnh hưởng flow không gây ra sự cố.
Test objective cần bao gồm goodput mục tiêu, completion time, p99 latency, loss/retransmission, ECN marking, PFC pause duration, fairness và tác động tới traffic không-RDMA. Câu hỏi quan trọng là “fabric ổn định ở workload nào” chứ không phải “có bật PFC/ECN hay chưa”.
Topology và điểm quan sát
#Topology tối thiểu có nhiều sender, một hoặc vài receiver, hai leaf và tối thiểu hai spine để thử ECMP. Thu telemetry ingress/egress queue, buffer occupancy, PFC Rx/Tx, ECN marks, drop reason, NIC counters và application completion time. Đồng bộ PTP hoặc nguồn thời gian đủ chính xác cho timeline microburst.
Đặt traffic generator hoặc host thật ở nhiều leaf để tạo incast. Có một nhóm traffic TCP/UDP thông thường cùng đường nhằm đo isolation. Ghi rõ NIC, firmware, driver, RDMA stack, switch ASIC/NOS, speed, FEC, MTU, priority/DSCP mapping và cable/optic.

Traffic profile và biến số phải khóa
#Traffic profile gồm message size distribution, QP count, flow arrival, fan-in, burst synchronization, read/write operation, duration và background traffic. Chạy cả steady flow, synchronized incast, many-to-many và elephant/mice mix. Một workload chỉ có message lớn, liên tục sẽ che vấn đề setup/fairness của flow ngắn.
Khóa MTU, DSCP/PCP, priority-to-queue, PFC-enabled priority, ECN threshold, buffer allocation, hashing, congestion-control mode và receiver capacity. Không đổi đồng thời threshold và workload; nếu không sẽ không biết cải thiện do chính sách nào.
KPI và bằng chứng đầu ra
#Counter phải lấy delta trong đúng run. SNMP polling 30–60 giây có thể bỏ qua microburst; ưu tiên streaming telemetry hoặc counter snapshot trước/sau kết hợp sequence/timestamp của traffic generator.
- KPI: RDMA goodput · Nguồn đo: Application/NIC · Ý nghĩa: Dữ liệu hữu ích hoàn tất
- KPI: Flow completion time · Nguồn đo: Sender/receiver · Ý nghĩa: Trải nghiệm job/collective
- KPI: p95/p99 latency · Nguồn đo: Timestamp end-to-end · Ý nghĩa: Tail dưới congestion
- KPI: PFC pause time/count · Nguồn đo: NIC + switch · Ý nghĩa: Mức phụ thuộc pause
- KPI: ECN mark rate · Nguồn đo: Queue/NIC · Ý nghĩa: Congestion signal
- KPI: Drop/retransmission · Nguồn đo: Queue/NIC/RDMA counters · Ý nghĩa: Loss và recovery
- KPI: Queue occupancy · Nguồn đo: Streaming telemetry · Ý nghĩa: Microburst và threshold
- KPI: Fairness · Nguồn đo: Per-flow/per-tenant · Ý nghĩa: Flow hoặc job bị đói
- KPI: TCP collateral impact · Nguồn đo: Application traffic đối chứng · Ý nghĩa: Congestion isolation
Ma trận congestion và QoS
#Pass/fail phải nêu rõ intentional drop và ngưỡng pause. “Không drop” bằng mọi giá không phải luôn tốt nếu đổi lại là pause lan rộng hoặc latency không giới hạn.
- Kịch bản: Baseline không nghẽn · Kỳ vọng: Không drop/PFC bất thường · Rủi ro cần quan sát: Sai mapping, link lỗi
- Kịch bản: Incast dưới receiver capacity · Kỳ vọng: Latency ổn định · Rủi ro cần quan sát: Hash imbalance
- Kịch bản: Incast vượt capacity ngắn · Kỳ vọng: ECN phản ứng, PFC có giới hạn · Rủi ro cần quan sát: Buffer spike, pause propagation
- Kịch bản: Elephant + mice · Kỳ vọng: Flow ngắn không bị đói · Rủi ro cần quan sát: HoL blocking
- Kịch bản: RDMA + TCP cùng link · Kỳ vọng: Isolation theo policy · Rủi ro cần quan sát: TCP collapse/latency
- Kịch bản: Một priority mapping sai · Kỳ vọng: Alarm/drop có thể giải thích · Rủi ro cần quan sát: Silent loss
- Kịch bản: Receiver chậm · Kỳ vọng: Backpressure có kiểm soát · Rủi ro cần quan sát: PFC storm/deadlock
Test plan baseline, incast và coexistence
#Test phải đảm bảo generator/host không bão hòa CPU, PCIe hoặc memory bandwidth. Nếu sender không tạo đủ offered load, fabric có thể trông “ổn” chỉ vì workload chưa đạt mục tiêu.
- Xác minh link speed, FEC, MTU, VLAN/DSCP/PCP và priority mapping từng hop.
- Chạy một flow từng path; đối chiếu ECMP, latency và counter sạch.
- Tăng số flow và offered load theo bậc, giữ message mix cố định.
- Đồng bộ sender tạo incast với burst duration tăng dần; ghi queue occupancy, ECN, PFC và p99.
- Thêm elephant/mice mix và many-to-many; đánh giá fairness.
- Bổ sung TCP/UDP đối chứng vào priority khác; đo collateral impact.
- Quét ECN/PFC threshold trong lab theo ma trận đã duyệt, mỗi lần chỉ đổi một biến.
- Lặp ít nhất ba run ở điểm mục tiêu và knee point; lưu raw telemetry.
Fault injection và recovery
#Tạo lỗi có kiểm soát: flap một uplink, mất một spine, thay đổi receiver processing rate, tắt ECN trên một hop lab hoặc cố ý mismatch priority mapping. Không thực hiện misconfiguration test trên production. Đo thời gian phát hiện, rehash, packet loss, PFC spike và job recovery.
Sau fault, xác nhận counter/queue trở về steady state. Một fabric có thể phục hồi throughput nhưng giữ PFC pause hoặc queue imbalance. Kiểm tra config consistency và rollback; không tự động re-enable node nếu telemetry chưa ổn định.

Phân tích kết quả và quyết định sizing
#ECN mark tăng trước latency là tín hiệu dự kiến; nếu PFC tăng mạnh nhưng ECN gần như không có, kiểm tra threshold/mapping. Nếu một leaf nghẽn trong khi tổng fabric còn headroom, xem ECMP entropy, flow pinning và receiver placement. Nếu TCP ở priority khác vẫn suy giảm, đánh giá shared buffer hoặc scheduling.
Sizing nên dựa vào worst-case fan-in, burst và headroom, không dùng tổng bandwidth lý thuyết. Báo cáo knee point, điểm vận hành đề xuất, queue headroom và failure mode. Giữ cả median lẫn worst run để thấy độ biến thiên.
Giới hạn của kết luận
#Kết quả phụ thuộc NIC/driver/firmware, switch ASIC/NOS, cable/FEC, congestion algorithm, collective library và workload. Benchmark packet không thay thế job-level benchmark; ngược lại job nhanh một lần không chứng minh fabric không có PFC storm. Các tính năng phải kiểm tra theo đúng phiên bản và license.
Khái niệm cần nhớ
#- RoCEv2: RDMA over Converged Ethernet được định tuyến qua UDP/IP.
- PFC: Priority-based Flow Control, pause theo priority.
- ECN: Explicit Congestion Notification, đánh dấu thay vì chỉ drop.
- Incast: Nhiều sender đồng thời gửi tới một receiver/egress.
- Head-of-line blocking: Flow bị chặn do hàng đợi dùng chung.
- Queue occupancy: Mức sử dụng buffer của hàng đợi theo thời gian.
- Goodput: Dữ liệu ứng dụng hữu ích hoàn tất.
Khái niệm cần nhớ
- DUT / SUT
- Thiết bị hoặc toàn bộ hệ thống đang là đối tượng của bài kiểm thử.
- Steady state
- Giai đoạn tải đã ổn định và đủ điều kiện để lấy số liệu đại diện.
- Pass / fail
- Kết luận dựa trên ngưỡng đã thống nhất, luôn đi cùng topology, cấu hình và điều kiện đo.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo4 nguồn +
Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.
NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.
