Tôi nhận ra nhiều câu hỏi tương tự đã được hỏi, nhưng cho đến nay tôi vẫn chưa tìm ra giải pháp cho vấn đề của mình.
Tôi có một máy chủ linux ảo (chạy Debian Squeeze) mà tôi sử dụng để kiểm tra tốc độ trang web để đo thời gian tăng và giảm thời gian tải của các trang web nói trên. Tôi đang cố gắng giới hạn băng thông và độ trễ của máy chủ này để có thể đến gần thời gian tải trong thế giới thực trên các trang web, nhưng cho đến nay đã thất bại.
Những gì tôi muốn cụ thể là như sau:
- Để đặt độ trễ đến và đi là 50 ms.
- Để đặt giới hạn băng thông đến là 512 kbps.
- Để đặt giới hạn băng thông đi là 4096 kbps.
Tôi đã đọc trên netem và sử dụng tc
lệnh, nhưng nó vẫn còn trên đầu tôi một chút. Tôi đã quản lý để kết hợp lệnh này để kiểm soát độ trễ dường như hoạt động, nhưng tôi thậm chí không chắc liệu điều đó chỉ xử lý độ trễ đi hay cả hai:
tc qdisc add dev eth0 root netem delay 50ms
Bất kỳ chuyên gia mạng nào xung quanh có thể giúp tôi ra?
Biên tập:
Sau khi nghiên cứu sâu hơn, tôi đã đạt được một nửa mục tiêu của mình, sử dụng lệnh này tất cả các hành vi giao thông đi ra ngoài như tôi muốn:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Tuy nhiên, tôi vẫn không thể điều tiết lưu lượng đến đúng cách. Tôi đã học được rằng tôi nên sử dụng "Bộ lọc Polress Ingress" Tôi đã cố gắng làm điều đó với lệnh bên dưới, chơi xung quanh với các giá trị khác nhau, nhưng không gặp may.
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop
Băng thông bị ảnh hưởng bởi lệnh, mặc dù vậy, các giá trị ở trên làm cho tốc độ bắt đầu ở mức 2MB / s và, khi quá trình truyền tải, từ từ giảm xuống khoảng 80-90kB / giây mà nó đạt được sau khoảng 30 giây truyền.
Bất cứ ý tưởng về những gì tôi đang làm sai?
netem delay 50ms
không giới hạn độ trễ. Nó làm tăng độ trễ bằng cách50ms
so sánh với những gì nó sẽ có.