Đầu tiên, cách dễ dàng: rsync
có một --bwlimit
tham số. Đó là một tốc độ không đổi, nhưng bạn có thể sử dụng nó để dễ dàng giảm tốc độ.
Bây giờ, nếu bạn muốn tốc độ thích ứng, có khung kiểm soát lưu lượng linux , điều này thực sự khá phức tạp. Có một số tài liệu tham khảo mà tôi biết:
Cá nhân, khi tôi phải thiết lập điều này, tôi sử dụng tcng để đơn giản hóa công việc. Đây là một ví dụ:
dev office {
egress {
class ( <$ssh> )
if ip_tos_delay == 1 && tcp_sport == PORT_SSH ;
class ( <$kyon> )
if ip_dst == 172.16.1.62; // monitoring host
class ( <$fast> )
if ip_tos_delay == 1;
class ( <$default> )
if 1;
htb() {
class ( rate 1440kbps, ceil 1440kbps ) {
$ssh = class ( rate 720kbps, ceil 1440kbps ) { sfq; };
$kyon = class ( rate 360kbps, ceil 1440kbps ) { sfq; };
$fast = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
$default = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
}
}
}
}
Trong ví dụ đó, lưu lượng được gửi qua giao diện văn phòng đang được phân loại thành nhiều lớp: ssh, kyon, nhanh và mặc định. Liên kết (một T1, khi sử dụng) được giới hạn ở mức 1440kb / giây (giá trị này phải thấp hơn một chút so với tốc độ liên kết thực tế, để việc đệm xảy ra trên hộp Linux, không phải bộ định tuyến). Bạn có thể thấy rằng ssh được gán 720kbps, kyon 360, v.v ... Tất cả đều có thể bùng nổ ở tốc độ đầy đủ (trần). Khi có sự tranh chấp, 'tỷ lệ' đóng vai trò là tỷ lệ, vì vậy ssh sẽ được đưa ra 1/2, kyon 1/4, v.v ... 'sfq' cho biết cách xử lý nhiều phiên ssh; sfq là một hình thức của vòng tròn.