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

80

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

    
por James McMahon 29.04.2010 / 00:55

3 respostas

21

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

NetLimiter is an ultimate internet traffic control and monitoring tool designed for Windows. You can use NetLimiter to set download/upload transfer rate limits for applications or even single connection and monitor their internet traffic.

Along with this unique feature, Netlimiter offers comprehensive set of internet statistical tools. It includes real-time traffic measurement and long-term per-application internet traffic statistics

    
por 18.02.2012 / 21:40
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 é secundário. preocupação.

NetBalancer

Por uma das outras principais respostas, durante algum 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 trial / free permite que você monitore conexões - mas não permite a aceleração.

NetLimiter

A alternativa é NetLimiter . 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 aprovado e testado para muitos SysAdmins.

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

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

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

A única variação que é útil nesta extremidade é se uma aplicação só se comunica através de um canal específico ou tipo de tráfego que facilmente pode ser identificado pelo roteador. Um exemplo está abaixo dos downloads de origem da EA:

A Origin atualmente usa a Akamai. Normalmente eu defino downloads automáticos / atualizações para serem executadas a qualquer momento - mas eu prefiro que não use toda a capacidade da linha enquanto estou ocupado fazendo outras coisas mais importantes. Origem passa a ser muito ruim em this classificar da coisa , por isso não suporta horários de download ou otimização de download. Atualmente meu desktop 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 controlada, tecnicamente estrangulando um único aplicativo.

A abordagem acima é ingênua no entanto. A EA poderia, em qualquer horário que fosse, alterar o nome do servidor, o protocolo usado ou outro serviço não relacionado que usasse a infraestrutura da Akamai poderia ser regulado inadvertidamente. Agora, minha nova regra brilhante é inutilizada e quebrada.

    
por 10.09.2015 / 20:35
1

Aqui está o afogamento do meu pobre homem:

Ele não limita exatamente a largura de banda, ele suspende / retoma o processo de consumo de largura de banda e, portanto, libera alguma largura de banda para outros aplicativos. E é grátis!

Você precisa de PsSuspend.exe (coloquei esse arquivo em C: \ tools \ sysinternals ) e um arquivo de lote (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 lote com o programa de reguladores como parâmetro

slow.bat filetransfer.exe

(substitua filetransfer.exe pelo nome do seu programa)

Se estiver pronto, pressione CTRL-C e cancele o lote.

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

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

(substitua filetransfer.exe pelo nome do seu programa)

    
por 20.10.2016 / 12:05