2010-04-28 22:55:18 +0000 2010-04-28 22:55:18 +0000
86
86

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?

Respostas (4)

22
22
22
2012-02-18 20:40:44 +0000

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

>

9
9
9
2015-09-10 18:35:38 +0000

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.

NetBalancer


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.

NetLimiter


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.

Usando um Router (com uma explicação da razão pela qual esta não é uma boa abordagem a este caso de uso).


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.

3
3
3
2018-11-18 10:38:36 +0000

Pode usar a Política de Grupo do Windows para acelerar a largura de banda de qualquer processo. Ir para:

  • Menu Iniciar > Executar > gpedit.msc
  • Configuração computador/utilizador (escolha uma ou outra) > Configurações do Windows > Política baseada em QoS

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:

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

& 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.

2
2
2
2016-10-20 10:05:21 +0000

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)