Maneira de limitar a largura de banda de programas no Windows?

85

Existe uma técnica no Windows que pode limitar seletivamente a largura de banda de um processo em execução?

James McMahon
fonte
3
Há toda uma lista de aplicações aqui que podem fazer isso: alternativeto.net/software/netbalancer
bgmCoder
As novas atualizações do NetBalencers não limitam os programas, de acordo com a declaração, o teste é de apenas 7 dias, você pode limitar apenas 3 softwares (quando decidir trabalhar) e custa 50 dólares para o serviço completo. Nem se incomode.

Respostas:

21

Eu uso o Net Limiter , que tem uma versão gratuita, mas infelizmente você precisará pagar pelo recurso de limitação .

O NetLimiter é a melhor ferramenta de controle e monitoramento de tráfego da Internet projetada para Windows. Você pode usar o NetLimiter para definir limites de taxa de transferência de download / upload para aplicativos ou até conexão única e monitorar o tráfego da Internet.

Juntamente com esse recurso exclusivo, o Netlimiter oferece um conjunto abrangente de ferramentas estatísticas da Internet. Inclui medição de tráfego em tempo real e estatísticas de tráfego da Internet por aplicativo a longo prazo

do utilizador
fonte
8
Não, as versões Lite / Pro, que permitem limitar o tráfego, não são gratuitas.
58613 Demkoryu 28/03
Este, pelo contrário , funciona muito bem no Windows XP.
GSerg
O NetLimiter 4 ainda possui a funcionalidade de limitação e está na versão gratuita, mas é limitada no tempo.
Dan Atkinson
9

Existem boas razões para considerar a abordagem "roteador voltado para a Internet" para gerenciar uma rede como um todo - no entanto, como a pergunta original era específica e o usuário pode muito bem ser o único computador na rede, isso é uma preocupação secundária.

NetBalancer


Por uma das outras respostas principais, por um tempo testei o NetBalancer . Funciona muito bem - e é fácil de configurar.

O NetBalancer está disponível para compra em sua página da web por cerca de US $ 50. A versão de teste / gratuita permite monitorar as conexões - mas não permite a otimização.

NetLimiter


A alternativa é NetLimiter . Ele tem um período de teste gratuito - mas começa em ~ $ 20 para a versão Lite ou ~ $ 30 para a versão Pro. O NetLimiter é o aplicativo go-to testado e testado para muitos SysAdmins.

Quando a avaliação do NetLimiter termina, até você comprar uma licença, ela se torna uma ferramenta apenas de monitoramento - e não oferece mais suporte à otimização. Isso ainda pode ser útil - mas não para este caso de uso.

Usando um roteador (com uma explicação de por que essa não é uma boa abordagem para este caso de uso).


Embora o uso de um roteador inteligente / altamente configurável seja geralmente a melhor abordagem para o gerenciamento de rede holística , a desconexão entre isso e a pergunta original não é explicada na resposta do @ ZaB. A pergunta original é especificamente sobre um processo - que um roteador não tem como identificar com segurança.

A única variação que é quase útil nesse sentido é se um aplicativo se comunicar apenas por um canal ou tipo de tráfego específico que possa ser facilmente identificado pelo roteador. Um exemplo está abaixo dos downloads Origin da EA:

A origem atualmente usa Akamai. Normalmente, defino downloads / atualizações automáticos para serem executados a qualquer momento - mas prefiro que ele não use toda a capacidade da linha enquanto estou ocupado fazendo outras coisas mais importantes. Origem passa a ser muito ruim em este tipo de coisa, portanto, ele não suporta agendas de download ou limitação de download. Atualmente, minha área de trabalho está baixando um jogo usando o servidor "a1750.d.akamai.net". Um roteador MikroTik (um exemplo de roteador inteligente) pode observar que esse nome DNS foi usado (ele estará no cache DNS com um endereço IP) e pode ser configurado temporariamente para adicionar o endereço IP do servidor de destino a uma "lista de endereços" " Todo o tráfego de / para a lista de endereços pode ser adicionado a uma fila regulada, tecnicamente, limitando um único aplicativo.

A abordagem acima é ingênua, no entanto. A EA pode, a qualquer momento, alterar o nome do servidor, o protocolo usado ou outro serviço não relacionado usando a infraestrutura da Akamai. Agora minha nova regra brilhante se torna inútil e quebrada.

zaTricky
fonte
Não tenho certeza de que a versão gratuita do NetBalancer ainda permita limitações de largura de banda. Citando a página de download : "A versão não registrada funciona apenas como um aplicativo de monitoramento e não suporta prioridades ou regras".
Gras Double
Suspiro. Curioso agora sobre quando isso mudou. Não instalei o Origin desde a última vez que atualizei minha área de trabalho para jogos.
ZaTricky
2

Aqui está o meu pobre homem estrangulando:

Ele não limita exatamente a largura de banda, mas suspende / retoma o processo de comer largura de banda e, portanto, libera uma largura de banda para outras aplicações. E é grátis!

Você precisa do PsSuspend.exe (coloquei esse arquivo em C: \ tools \ sysinternals) e um arquivo em lotes (por exemplo) slow.bat:

@echo off
:START 
c:\tools\sysinternals\pssuspend.exe %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
c:\tools\sysinternals\pssuspend.exe -r %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
goto START

Agora abra uma linha de comando como administrador e execute o arquivo em lotes com o programa throttles como parâmetro

slow.bat filetransfer.exe

(substitua filetransfer.exe pelo nome do seu programa)

Se tiver terminado, pressione CTRL-C e cancele o lote.

Se o programa ainda estiver em execução, considere retomar o programa caso você interrompa o lote enquanto o programa foi suspenso:

c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe

(substitua filetransfer.exe pelo nome do seu programa)

bebbo
fonte
Isso realmente não resolve o problema. É uma correção de processo única, você precisa conhecer o processo que está sobrecarregando a largura de banda e não precisa usá-lo ativamente.
Dan Atkinson
11
Se você deseja "limitar a largura de banda de um processo em execução" (eis a questão), você conhece o processo, certo? E meus processos que consomem toda a largura de banda são especialmente carregamentos (faz com que minha internet não seja utilizável para mais nada) e talvez também sejam downloads. Meu "pobre homem de controle" faz o trabalho: posso carregar e ainda usar a internet. E sim - não é uma solução perfeita. É para homens pobres - não para comprar algum software.
bebbo 21/10
11
Eu tenho que concordar com @ dan-atkinson. O NetBalancer é um bom exemplo em que a versão gratuita funcionará perfeitamente no mesmo caso de uso que esse. Este método também possui limitações: - Requer etapas manuais / complicadas - Não há como especificar qual deve ser o limite da largura de banda. - Esse método pode simplesmente mudar o uso indesejado "estável" para picos e vales menos desejáveis. - O aplicativo ficará sem resposta /
lento
O nerd em mim se pergunta se isso poderia ser uma maneira boa e barata de fazer as coisas, mas com um tempo limite muito menor, como 50ms. Então, seria muito mais suspenso / não suspenso, mas a experiência poderia ser mais suave.Não sei como o tempo em suspensão é mapeado para uma taxa de upload reduzida, mas é algo para experimentar ...
pgr
1

Você pode usar a Diretiva de Grupo do Windows para limitar a largura de banda de qualquer processo. Vamos para:

  • Menu Iniciar> Executar> gpedit.msc
  • Configuração do computador / usuário (escolha uma ou outra)> Configurações do Windows> QoS baseada em políticas

Aqui você pode ver as políticas atuais e criar novas políticas:

  • Clique com o botão direito do mouse em "QoS baseada em políticas" ou em "Ação"> Criar nova política ...
  • Em seguida, siga o assistente para criar uma nova política de limitação.

O assistente permite criar uma política para limitar a largura de banda para:

  • Tudo no seu computador
  • Processos específicos
  • Sites específicos (apenas para aplicativos que usam protocolos HTTP)

E suas políticas podem ser filtradas por:

  • Protocolos TCP ou UDP
  • IP de origem / destino
  • Portas de origem / destino

Você também pode criar essas políticas no Powershell executando:

New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB

Embora isso possa exigir direitos de administrador, e parece haver um erro em que políticas criadas como essa não aparecerão na GUI.

Silveri
fonte