É possível alterar os valores de prioridade / bons para o acesso de um aplicativo ao NIC, dando precedência para a largura de banda?

3

É possível ajustar quais aplicativos recebem a maior parte da largura de banda em uma NIC, semelhante ao valor de -20 a +20 de Nice, mas para largura de banda em vez de tempo de processamento?

A transmissão parece sufocar minhas outras aplicações. Eu posso retardar o aplicativo de suas opções, mas me perguntei se havia uma solução específica do Linux / não-aplicativo, onde eu possa ver e ajustar tudo o que tem acesso à rede.

Atualização: Eu suspeito que o problema é mostrado na saída abaixo. Atualmente, todo o tráfego da Web e de transmissão é a porta de origem TCP 80 e uma porta de destino dinâmico, e é agrupada na classe 0: 3 (com 16810552 bytes e 171075 pacotes). Então, como minha conexão com a web não é tão rápida, a transmissão está sufocando o suficiente para que eu tenha tempo limite. A saída mostra que nenhum pacote está sendo eliminado pela disciplina de enfileiramento.

Estou analisando tcng como uma possível solução devido à configuração já presente.

$ tc qdisc show dev wlp2s0
qdisc mq 0: root 
qdisc fq_codel 0: parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 
qdisc fq_codel 0: parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 
qdisc fq_codel 0: parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 
qdisc fq_codel 0: parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 

$ tc -g -s class show dev wlp2s0
+---(:4) mq 
|       Sent 5670 bytes 105 pkt (dropped 0, overlimits 0 requeues 1) 
|       backlog 0b 0p requeues 1
|   
+---(:3) mq 
|       Sent 16810552 bytes 171075 pkt (dropped 0, overlimits 0 requeues 0) 
|       backlog 0b 0p requeues 0   competing for bandwidth
|     
+---(:2) mq 
|       Sent 2538 bytes 31 pkt (dropped 0, overlimits 0 requeues 1) 
|       backlog 0b 0p requeues 1
|     
+---(:1) mq 
        Sent 13432 bytes 76 pkt (dropped 0, overlimits 0 requeues 0) 
        backlog 0b 0p requeues 0
    
por trogdor 11.08.2018 / 02:15

2 respostas

2

Traffic Shaping QoS

Eu usei historicamente ferramentas como o Wondershaper , Trickle , ou pyshaper para reduzir o tráfego de rede.

Exemplos

Trickle

Para acelerar a velocidade de upload / download para 20Kbps.

$ trickle -d 20 wget -c http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

Você também pode defini-los independentemente no cenário acima. Você também pode definir essas configurações como padrão.

$ trickled -d 50 -u 10

Wondershaper

Você também pode usar o Wondershaper para controlar a largura de banda no nível da rede. Por exemplo, digamos que quero controlar meu eth1 device.

$ sudo wondershaper eth1 1024 256

Isso me dará uma velocidade de download de 1024 Kbits e 256 Kbits Upload. Quais são 128KB e 16KB.

Quando você quiser liberar as capas.

$ sudo wondershaper clear eth1

pyshaper

Eu já cobri extensivamente pyshaper no site antes, veja estas perguntas e respostas como intitulado:

Estas são ferramentas bastante capazes, por isso é apenas para mostrar o potencial.

Referências

por 11.08.2018 / 04:55
1

Provavelmente, o que você está procurando é qualidade de serviço (QoS), que pode não estar facilmente disponível em seu firewall favorito (como iptables , nftables , pf , ufw , etc), mas deve ser simples em qualquer roteador moderno e opera por IP / port .

Exemplo de iptables; link

Como slm mencionou trickle pode ser usado ao iniciar um processo quando não estiver usando comandos (como rsync , curl , wget ) que têm limitação de taxa como uma opção incorporada .

wondershaper pode ser usado para limitar por interface [virtual] , o que é útil para comandos e VMs que podem ser vinculados a um nic (como rsync , curl , wget ).

    
por 11.08.2018 / 02:24