Назад | Перейти на главную страницу

Как я могу ограничить пропускную способность загрузки / выгрузки на моем сервере CentOS?

Как я могу ограничить скорость загрузки и скачивания на моем сервере CentOS? Это коробка с единым интерфейсом, eth0. В идеале мне нужно решение для командной строки (я пытался использовать tc), то, что я мог бы легко включить и выключить в скрипте.

До сих пор я пытался сделать что-то вроде tc filter add dev eth0 protocol ip prio 50 u32 police rate 100kbit burst 10240 drop но мне явно не хватает знаний и информации. Может кто-нибудь помочь с быстрым однострочником?

Большое спасибо, Дэн

У меня возникли проблемы с добавлением кода сценария здесь, он доступен по этой сути - https://gist.github.com/akrasic/7242498#file-limit-tc-sh

Сценарий использует TC и Hierarchical Token Bucket (HTB) для определения правил и, наконец, фильтров, которые будут действовать как универсальное правило.

Вам нужно будет изменить interface var, если он отличается от eth0˙и interface_speed .

Сохраните скрипт на своем сервере и запустите его: ḃash limit-tc.sh start

Остановиться: bash limit-tc.sh stop

Статус просмотра: bash limit.tc status

Вывод статуса будет выглядеть примерно так:

qdisc htb 1: root refcnt 2 r2q 10 default 30 direct_packets_stat 1  
 Sent 535666 bytes 6461 pkt (dropped 172, overlimits 7641 requeues 0)  
 rate 0bit 0pps backlog 0b 0p requeues 0  
qdisc sfq 10: parent 1:10 limit 127p quantum 1514b perturb 10sec  
 Sent 535624 bytes 6424 pkt (dropped 172, overlimits 0 requeues 0)   
 rate 0bit 0pps backlog 0b 0p requeues 0  
qdisc sfq 20: parent 1:20 limit 127p quantum 1514b perturb 10sec  
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)  
 rate 0bit 0pps backlog 0b 0p requeues 0