Chúng tôi đang lưu trữ một ứng dụng trên máy chủ từ xa. Chúng tôi cần kiểm tra nó với băng thông mạng hạn chế (đối với người dùng có truy cập Internet xấu).
Tôi có thể giới hạn băng thông internet của mình không? Ví dụ: 128 KB mỗi giây.
Câu hỏi này tập trung vào các giải pháp toàn hệ thống hoặc toàn bộ container trên Linux. Xem Giới hạn sử dụng băng thông internet của Shell cụ thể để biết các giải pháp dành riêng cho quy trình hoặc theo phiên.
Bạn có thể điều tiết băng thông mạng trên giao diện bằng lệnh có tên tc
Trang man có sẵn tại http://linux.die.net/man/8/tc
Đối với một tập lệnh đơn giản, hãy thử wonderershaper .
Một ví dụ từ việc sử dụng tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540
Như đã lưu ý trong câu trả lời trước, wonderershaper thực hiện công việc một cách dễ dàng. Tôi bao gồm thông tin từ liên kết trên bởi Jwalanta Shrestha
apt-get install wondershaper
wonderershaper - Một công cụ dễ dàng để giới hạn băng thông của một giao diện cụ thể.
$ Sudo wondershaper {interface} {down} {up}
{down} và {up} là băng thông tính bằng kpbs
Vì vậy, ví dụ nếu bạn muốn giới hạn băng thông của giao diện eth1 xuống 256kbps đường xuống và đường lên 128kbps,
$ Sudo wondershaper eth1 256 128
Để xóa giới hạn,
$ Sudo wondershaper clear eth1
Giới hạn tài nguyên mạng dựa trên một số tiêu chí là chủ đề của QoS . Có một số cách khác nhau để kiểm soát lưu lượng người dùng trên các hệ thống Linux.
Có một Hướng dẫn tốt về các kỹ thuật định tuyến nâng cao và kiểm soát lưu lượng trên Linux của Bert Hubert.
Nếu bạn đã có một thiết lập Apache ở đâu đó, bạn có thể sử dụng mod_bw
, cũng hoạt động trên các kết nối được ủy quyền (nghĩa là Apache chỉ chuyển tiếp mọi thứ đến máy chủ phù hợp, nhưng làm chậm các phản hồi xuống.)
Bạn cũng có thể sử dụng mô-đun hashlimit iptables. Đây là một ví dụ đơn giản:
iptables -A FORWARD -m hashlimit --hashlimit-trên 512kb/giây --hashlimit-nổ 1mb --hashlimit-mode srcip, dstip --hashlimit-name bwlimit -j DROP
Quy tắc đó giới hạn lưu lượng đi qua chuỗi FORWARD là 512kb/giây với cụm 1mb cho mỗi cặp nguồn và đích.
Kiểm tra phần hashlimit của hướng dẫn iptables để biết thêm thông tin.
Dummynet thực hiện những gì bạn muốn và hơn thế nữa, bạn thậm chí có thể kiểm soát độ trễ, mất gói ngẫu nhiên và nhiều hơn nữa.