Приветствую!
Есть две машины. Между машинами канал 300mbit, который они с удовольствие занимают полностью. Нужно ограничить скорость передачи с одной машины (на ней крутится Proxmox, с нее передаются бекапы виртуалок) на другую до, например, 50mbit.
Делаю так:
#!/bin/bash
ETH=vmbr99
tc qdisc del dev $ETH root
tc qdisc add dev $ETH root handle 1: htb default 3
tc class add dev $ETH parent 1: classid 1:1 htb rate 50mbit
tc filter add dev $ETH protocol ip parent 1: prio 1 u32 match ip dst IP_куда_передаются_данные flowid 1:1
Смотрю вывод watch tc -s -d class show dev vmbr99
Every 2.0s: tc -s -d class show dev vmbr99 Tue Jul 25 13:33:25 2017
class htb 1:1 root prio 0 quantum 200000 rate 50Mbit ceil 50Mbit linklayer ethernet burst 1575b/1 mpu 0b overhead 0b cburst 1575b/1 mpu 0b overhead 0b level 0
Sent 1100847288 bytes 782450 pkt (dropped 52463, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 534635 borrowed: 0 giants: 0
tokens: 1273 ctokens: 1273
Очевидно, дисциплина активна.
Но при этом реальная скорость передачи файлов не превышает примерно 20mbit!
Что делать, товарищи?