Giả lập độ trễ mạng diện rộng
Đây là ví dụ đơn giản nhất, nó chỉ thêm một độ trễ cố định cho tất cả các gói đi ra khỏi Ethernet cục bộ.
# tc qdisc add dev eth0 root netem delay 100ms
Bây giờ, một thử nghiệm ping đơn giản để lưu trữ trên mạng cục bộ sẽ hiển thị mức tăng 100 mili giây. Độ trễ được giới hạn bởi độ phân giải xung nhịp của kernel (Hz). Trên hầu hết các hệ thống 2.4, đồng hồ hệ thống chạy ở tần số 100 Hz, cho phép độ trễ tăng dần 10 ms. Trên 2.6, giá trị là tham số cấu hình từ 1000 đến 100 Hz.
Các ví dụ sau chỉ thay đổi tham số mà không tải lại qdisc
Các mạng diện rộng thực cho thấy sự biến đổi nên có thể thêm biến thể ngẫu nhiên.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Điều này gây ra độ trễ thêm vào là 100 ± 10 ms. Biến thể độ trễ mạng không hoàn toàn ngẫu nhiên, do đó, để mô phỏng rằng cũng có một giá trị tương quan.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Điều này gây ra độ trễ thêm vào là 100 ± 10 ms với phần tử ngẫu nhiên tiếp theo phụ thuộc 25% vào phần cuối cùng. Đây không phải là mối tương quan thống kê thực sự, nhưng là một xấp xỉ.
Phân phối chậm trễ
Thông thường, độ trễ trong mạng không đồng nhất. Nó là phổ biến hơn để sử dụng một cái gì đó giống như một phân phối bình thường để mô tả sự thay đổi trong độ trễ. Kỷ luật netem có thể lấy một bảng để chỉ định phân phối không đồng nhất.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Các bảng thực tế (bình thường, pareto, paretonatural) được tạo như một phần của quá trình biên dịch iproute2 và được đặt trong / usr / lib / tc; do đó, có thể với một số nỗ lực để thực hiện phân phối của riêng bạn dựa trên dữ liệu thử nghiệm.
tc
thậm chí còn có trên các hệ thống SLES và RHEL hiện tại.