Como limitar a largura de banda dos programas no Windows?
Existe alguma técnica no Windows que possa limitar selectivamente a largura de banda de um processo em execução?
Existe alguma técnica no Windows que possa limitar selectivamente a largura de banda de um processo em execução?
Utilizo Net Limiter , que tem uma versão gratuita, mas infelizmente terá de pagar pela funcionalidade de limitação .
& > NetLimiter é uma ferramenta de controlo e monitorização do tráfego na Internet concebida para Windows. Pode utilizar o NetLimiter para definir limites de taxa de transferência de download/upload para aplicações ou mesmo para uma única ligação e monitorizar o seu tráfego na Internet.
& > Juntamente com esta característica única, 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 na Internet a longo prazo por aplicação
Há boas razões para olhar para a abordagem “Internet face a router” para gerir uma rede como um todo - contudo, como a questão original era específica e o utilizador pode muito bem ser o único computador na rede, essa é uma preocupação secundária.
Por uma das outras respostas de topo, durante algum tempo testei NetBalancer . Funciona muito bem - e é fácil de configurar.
NetBalancer está disponível para compra na sua página web por cerca de $50. A versão experimental/grátis permite monitorizar as ligações - mas não permite estrangulamento.
A alternativa é NetLimiter . Tem um ** período experimental gratuito** - mas começa em ~$20 para a versão Lite ou ~$30 para a versão Pro. O NetLimiter é a aplicação experimentada e testada para muitas SysAdmins.
Quando o período experimental do NetLimiter termina, até que se compre uma licença, torna-se uma ferramenta apenas de monitorização - e já não suporta estrangulamento. Isto ainda pode ser útil - mas não para este caso de utilização.
Embora a utilização de um router inteligente/alto-configurável seja normalmente a melhor abordagem à gestão de rede wholistic, a desconexão entre isso e a pergunta original não é explicada na resposta de @ZaB. A pergunta original é especificamente sobre um processo - que um router não tem como identificar de forma fiável.
A única variação que está perto de ser útil para este fim é se uma aplicação comunicar apenas através de um canal ou tipo de tráfego específico que possa ser facilmente identificado pelo router. Um exemplo está abaixo dos downloads da Origem da EA:
Origem utiliza actualmente a Akamai. Normalmente, defino os downloads/actualizações automáticos para funcionar a qualquer altura - mas prefiro que não utilize toda a capacidade da linha enquanto estou ocupado a fazer outras coisas mais importantes. A origem é muito mal em isto ordenar de coisa , portanto não suporta horários de download ou estrangulamento de download. Actualmente o meu computador está a descarregar um jogo utilizando o servidor “a1750.d.akamai.net”. Um router MikroTik (um exemplo de router inteligente) pode tomar nota que este nome DNS foi utilizado (estará na 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 estrangulada, o que, tecnicamente, estrangula uma única aplicação.
A abordagem acima é, no entanto, ingénua. A EA poderia a qualquer hora alterar o nome do servidor, o protocolo utilizado, ou outro serviço não relacionado utilizando a infra-estrutura Akamai poderia ser inadvertidamente estrangulada. Agora a minha nova regra brilhante é tornada inútil e quebrada.
Pode usar a Política de Grupo do Windows para acelerar a largura de banda de qualquer processo. Ir para:
Aqui pode ver as políticas actuais e criar novas políticas por:
Ou clicando com o botão direito do rato em “QoS baseada em políticas” ou indo para “Acção” > Criar nova política… & - Depois siga o assistente para criar uma nova política de estrangulamento.
O assistente permite-lhe criar uma política de estrangulamento de largura de banda para qualquer uma das duas:
Tudo no seu computador
Processos específicos
Websites específicos (apenas para aplicações que utilizam protocolos HTTP)
& E as suas políticas podem então ser filtradas por:
& Também pode criar estas políticas em Powershell executando:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Embora isto possa requerer direitos de administrador, e parece haver um bug onde políticas criadas desta forma não aparecerão na GUI.
Aqui está o meu pobre homem a estrangular:
Não limita exactamente a largura de banda com, antes suspende/resume o processo de alimentação da banda e assim liberta alguma largura de banda para outras aplicações. E é grátis!
Precisa de PsSuspend.exe (Coloco este ficheiro em C:\sysinternals) e um ficheiro de lote (por exemplo) lento. 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 ficheiro batch com o programa de aceleradores como parâmetro
slow.bat filetransfer.exe
(substitua filetransfer.exe pelo nome do seu programa)
Se tiver terminado, carregue em CTRL-C e cancele o batch.
Se o programa ainda estiver em execução, considere retomar o programa no caso de ter interrompido o lote enquanto o programa estava suspenso:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(substitua filetransfer.exe pelo nome do seu programa)