Có một phương pháp để mô phỏng độ trễ cao?


11

Đây là một câu trả lời rất tốt về cách hạn chế băng thông .

Bây giờ Băng thông không phải là mối quan tâm chính của tôi - độ trễ là.

Điều gì xảy ra nếu tôi đặt một vài trăm km giữa các máy chủ ứng dụng và máy chủ cơ sở dữ liệu của nó?

Tôi đang tìm kiếm một khả năng mô phỏng độ trễ dự kiến ​​cho mỗi gói IP.

Câu trả lời:


14

Bạn có thể làm điều này bằng cách sử dụng netem. Từ trang chủ của họ :

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.


3
Tuyệt vời - và tcthậm chí còn có trên các hệ thống SLES và RHEL hiện tại.
Nils
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.