
Mục lục bài viết 10 phần
RoCEv2 có thể đạt throughput cao và latency thấp, nhưng một cấu hình “lossless” không đúng dễ biến congestion cục bộ thành pause lan rộng, head-of-line blocking hoặc deadlock. Test plan phải đo đồng thời traffic RDMA, traffic nền, queue, PFC pause, ECN marking và thời gian phục hồi; kết quả trung bình tốt không đủ nếu tail latency và fairness sụp đổ trong incast.
Bài viết giúp bạn
- Câu hỏi kỹ thuật cần trả lời
- Topology và traffic profile
- Biến số phải khóa trước khi đo
Câu hỏi kỹ thuật cần trả lời
#Bài kiểm thử cần trả lời: loss và congestion được phát hiện ở đâu; ECN có đánh dấu trước khi queue tràn; sender có giảm rate đúng; PFC chỉ tác động priority được phép hay lan sang traffic khác; incast có làm p99/p99.9 tăng đột biến; và fabric có tự phục hồi sau pause storm hoặc link failure không.
Không nên dùng “zero packet loss” làm tiêu chí duy nhất. PFC có thể che drop bằng cách dừng upstream, trong khi throughput tốt nhưng flow ngắn hoặc control traffic bị chậm. Mục tiêu là đạt service objective với pause có giới hạn, queue ổn định và không tạo phụ thuộc vòng.
Topology và traffic profile
#Topology tối thiểu gồm bốn hoặc nhiều host hai phía của cặp leaf, ít nhất hai spine, NIC RDMA hỗ trợ telemetry, và một điểm oversubscription có chủ đích. Thêm bộ phát traffic Ethernet/IP thông thường để kiểm isolation. Nếu dùng GPU/accelerator thật, ghi workload, message size và collective; nếu mô phỏng, ghi rõ generator không thay thế đầy đủ RNIC behavior.
Tạo bốn profile: many-to-one incast; one-to-many; all-to-all; và RDMA trộn TCP/management. Mỗi profile cần nhiều message size, số QP, offered load và flow duration. Chạy baseline không nghẽn trước, sau đó tạo bottleneck bằng rate-limit hoặc hạ tốc độ một link mà không thay các biến khác.

Biến số phải khóa trước khi đo
#Ghi firmware NIC, driver, transport mode, MTU, số QP, message size, hashing, link speed, buffer profile, PFC priority, DSCP/PCP mapping, ECN threshold, congestion-control algorithm và timer. Đảm bảo mapping nhất quán end-to-end; một switch remark DSCP hoặc trust sai có thể khiến PFC/ECN áp dụng nhầm queue.
Clock phải đồng bộ để ghép host counter, switch telemetry và packet capture. Ghi rõ switch sử dụng shared hay dedicated buffer, dynamic threshold ra sao và counter có cumulative hay interval. Reset counter trước mỗi ca hoặc lưu snapshot delta.
- Biến số: QoS mapping · Giá trị cần ghi: DSCP/PCP → traffic class/priority · Rủi ro nếu không khóa: Pause/mark nhầm queue
- Biến số: PFC · Giá trị cần ghi: priority, watchdog, recovery · Rủi ro nếu không khóa: Pause lan rộng hoặc drop ẩn
- Biến số: ECN · Giá trị cần ghi: min/max threshold, marking mode · Rủi ro nếu không khóa: Mark quá sớm/quá muộn
- Biến số: RNIC control · Giá trị cần ghi: algorithm, rate/timer · Rủi ro nếu không khóa: Phản ứng sender khác nhau
- Biến số: Buffer · Giá trị cần ghi: pool, headroom, threshold · Rủi ro nếu không khóa: Kết quả không tái lập
- Biến số: Traffic · Giá trị cần ghi: QP, message, flow mix · Rủi ro nếu không khóa: Che tail latency/fairness
KPI và bằng chứng đầu ra
#Đo goodput theo flow và toàn fabric, message latency p50/p95/p99/p99.9, packet loss/retransmission nếu có, ECN-mark ratio, PFC pause frame/time, queue occupancy, buffer drop, fairness và CPU/NIC utilization. Với traffic nền, đo riêng latency/loss để phát hiện head-of-line blocking.
Bằng chứng gồm cấu hình QoS end-to-end, NIC/driver/firmware, per-queue counter, congestion notification, PFC TX/RX, queue telemetry, traffic result và PCAP ở vị trí có thể quan sát ECN. Báo cả worst-case và thời gian queue trở về baseline sau khi hết incast.
Ma trận ca kiểm thử
#- Ca: RDM-01 · Sự kiện: Baseline không nghẽn · Kỳ vọng: Throughput/latency ổn định · Pass/fail chính: Không pause/drop bất thường
- Ca: RDM-02 · Sự kiện: Incast tăng dần · Kỳ vọng: ECN tăng, sender giảm rate · Pass/fail chính: p99 và queue trong ngưỡng
- Ca: RDM-03 · Sự kiện: Microburst ngắn · Kỳ vọng: Headroom hấp thụ có kiểm soát · Pass/fail chính: Không pause lan toàn fabric
- Ca: RDM-04 · Sự kiện: RDMA + TCP nền · Kỳ vọng: Isolation đúng class · Pass/fail chính: TCP/control không starvation
- Ca: RDM-05 · Sự kiện: Down một uplink · Kỳ vọng: ECMP remap và phục hồi · Pass/fail chính: Loss/restoration trong SLA
- Ca: RDM-06 · Sự kiện: Sai DSCP/PCP có chủ đích · Kỳ vọng: Alarm/fail-closed theo thiết kế · Pass/fail chính: Không tạo silent misclassification
- Ca: RDM-07 · Sự kiện: Pause storm lab · Kỳ vọng: Watchdog/recovery hoạt động · Pass/fail chính: Không deadlock kéo dài
- Ca: RDM-08 · Sự kiện: Khôi phục bottleneck · Kỳ vọng: Queue/pause trở về baseline · Pass/fail chính: Không giữ rate thấp/stale state
Test plan PFC và queue isolation
#Xác nhận priority mapping từng hop bằng counter và gói mẫu. Tạo microburst vào một egress queue, quan sát PFC TX ở downstream và RX upstream. Kiểm pause chỉ tác động priority dự kiến. Đồng thời chạy control/management và TCP ở class khác; nếu latency cùng tăng, cần phân tích shared buffer hoặc scheduler.
Để tìm pause propagation, tăng fan-in theo từng bước và ghi số hop có PFC. Test watchdog bằng pause kéo dài trong lab được cô lập, rồi xác minh policy drop/recovery. Không inject pause storm vào production; deadlock test phải có giới hạn thời gian và cơ chế dừng ngoài băng.
Test plan ECN, incast và fairness
#Tăng offered load đến khi queue bắt đầu mark ECN nhưng chưa drop. Đo quan hệ giữa occupancy, mark ratio, sender rate và tail latency. Sau đó tăng số sender với cùng tổng tải để phân biệt tác động fan-in. Một threshold tốt ở 8 host có thể thất bại ở 64 host do burst đồng bộ.
Kiểm fairness bằng flow dài/ngắn, nhiều QP và host khác nhau. Báo Jain’s fairness index hoặc phân bố goodput, không chỉ tổng. Lặp với đường ECMP khác và link speed bất đối xứng. Nếu thuật toán congestion control là tính năng hãng, ghi version và không suy kết quả sang NIC khác.
Trong RoCEv2 dùng ECN/CNP, switch đánh dấu CE, receiver gửi Congestion Notification Packet và sender RNIC điều chỉnh tốc độ theo thuật toán được hỗ trợ. DCTCP trong RFC 8257 là thuật toán cho TCP, không phải đặc tả congestion control RoCE. PFC watchdog có thể chủ động drop để phá bế tắc; phải ghi nhận đánh đổi availability/loss trong verdict.

Runbook lỗi và phục hồi
#Khi lỗi, tách detection, queue buildup, congestion signal, sender reaction và recovery. Nếu packet loss xảy ra, xác định queue/priority và thời điểm thay vì quy chung cho “fabric”. Nếu không loss nhưng p99 vượt SLO, coi đó vẫn là fail.
- Chụp topology, firmware, QoS mapping, buffer và routing baseline.
- Đồng bộ thời gian; reset hoặc snapshot counter.
- Chạy baseline từng traffic profile ở tải thấp và tải mục tiêu.
- Tạo bottleneck duy nhất; tăng fan-in/offered load theo bước.
- Thu host, RNIC, switch queue/PFC/ECN và traffic result cùng timeline.
- Inject link failure, misclassification và pause kéo dài trong môi trường cô lập.
- Gỡ lỗi, đo recovery và kiểm counter/queue trở về baseline.
- Lặp đủ lần; báo median, percentile, worst case và điều kiện đo.
Giới hạn kết luận
#Kết quả phụ thuộc NIC, driver, firmware, switch silicon, buffer, topology, scale và workload. Traffic generator Ethernet không thể chứng minh đầy đủ behavior của RDMA stack; workload synthetic cũng không đại diện mọi collective hoặc prompt/KV transfer.
PFC và ECN là cơ chế, không phải bảo đảm hiệu năng. Không công bố “lossless” hoặc throughput nếu thiếu message size, QP, offered load, oversubscription và percentile latency. IEEE/RFC nêu hành vi giao thức; ngưỡng triển khai phải được xác nhận bằng lab.
Khái niệm cần nhớ
#- RoCEv2: RDMA over Converged Ethernet dùng UDP/IP.
- PFC: Priority-based Flow Control, pause theo priority thay vì cả link.
- ECN: Đánh dấu congestion mà không cần drop gói.
- Incast: Nhiều sender đồng thời dồn traffic vào một receiver/egress.
- Head-of-line blocking: Flow/queue không nghẽn bị chậm bởi traffic khác.
- Deadlock: Chuỗi phụ thuộc pause khiến các phần của fabric không tiến triển.
- Goodput: Dữ liệu hữu ích tới ứng dụng, loại overhead/retry.
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.
