Modo per limitare la larghezza di banda dei programmi su Windows?


85

Esiste una tecnica in Windows che può limitare selettivamente la larghezza di banda di un processo in esecuzione?


3
C'è un intero elenco di applicazioni qui che può fare questo: alternativeto.net/software/netbalancer
bgmCoder

I nuovi aggiornamenti di NetBalencers non limitano i programmi come da loro dichiarazioni, il periodo di prova è di soli 7 giorni, puoi limitare solo 3 software (quando decide di funzionare) e costa ben 50 dollari per il servizio completo. Non preoccuparti nemmeno.

Risposte:


21

Uso Net Limiter , che ha una versione gratuita, ma sfortunatamente dovrai pagare per la funzione di limitazione .

NetLimiter è uno strumento di monitoraggio e monitoraggio del traffico Internet all'avanguardia progettato per Windows. È possibile utilizzare NetLimiter per impostare limiti di velocità di trasferimento download / upload per applicazioni o anche una singola connessione e monitorare il loro traffico Internet.

Insieme a questa caratteristica unica, Netlimiter offre un set completo di strumenti statistici su Internet. Include la misurazione del traffico in tempo reale e statistiche sul traffico Internet per applicazione a lungo termine


8
No, le versioni lite / pro, che consentono la limitazione del traffico, non sono gratuite.
demonkoryu,

Questo, al contrario , funziona abbastanza bene su Windows XP.
GSerg

NetLimiter 4 ha ancora la funzionalità di limitazione ed è nella versione gratuita, ma è limitato nel tempo.
Dan Atkinson,

9

Vi sono buone ragioni per esaminare l'approccio del "router Internet" per la gestione di una rete nel suo insieme - tuttavia, poiché la domanda originale era specifica e l'utente potrebbe benissimo essere l'unico computer della rete, che è una preoccupazione secondaria.

NetBalancer


Per una delle altre risposte migliori, per un po 'ho testato NetBalancer . Funziona davvero bene ed è facile da configurare.

NetBalancer è disponibile per l'acquisto sulla loro pagina web per circa $ 50. La versione di prova / gratuita consente di monitorare le connessioni, ma non consente la limitazione.

NetLimiter


L'alternativa è NetLimiter . Ha un periodo di prova gratuito - ma inizia a ~ $ 20 per la versione Lite o ~ $ 30 per la versione Pro. NetLimiter è l'applicazione testata per molti amministratori di sistema.

Al termine del periodo di prova di NetLimiter, fino a quando non si acquista una licenza, diventa uno strumento di solo monitoraggio e non supporta più la limitazione. Questo può essere ancora utile, ma non per questo caso d'uso.

Utilizzo di un router (con una spiegazione del perché questo non è un buon approccio a questo caso d'uso).


Sebbene l'utilizzo di un router intelligente / altamente configurabile sia di solito l'approccio migliore alla gestione globale della rete, la disconnessione tra questa e la domanda originale non è spiegata nella risposta di @ ZaB. La domanda originale è in particolare quella di un processo che un router non ha modo di identificare in modo affidabile.

L'unica variazione che è quasi utile a questo scopo è se un'applicazione comunica solo su un canale o tipo di traffico specifico che può essere facilmente identificato dal router. Di seguito è riportato un esempio dei download Origin di EA:

Origin attualmente utilizza Akamai. In genere imposto download / aggiornamenti automatici per l'esecuzione in qualsiasi momento, ma preferirei che non utilizzasse tutta la capacità della linea mentre sono impegnato a fare altre cose più importanti. L'origine sembra essere molto cattiva in questo genere di cose, quindi non supporta i programmi di download o la limitazione del download. Attualmente il mio desktop sta scaricando un gioco usando il server "a1750.d.akamai.net". Un router MikroTik (un esempio di uno smart router) può prendere atto che questo nome DNS è stato utilizzato (sarà nella cache DNS con un indirizzo IP) e può essere configurato temporaneamente per aggiungere l'indirizzo IP del server di destinazione a un "elenco indirizzi ". Tutto il traffico verso / dall'elenco indirizzi può essere aggiunto a una coda limitata in tal modo, tecnicamente, limitando una singola applicazione.

L'approccio sopra è tuttavia ingenuo. EA potrebbe in qualsiasi momento modificare il nome del server, il protocollo utilizzato o un altro servizio non correlato che utilizza l'infrastruttura Akamai potrebbe essere inavvertitamente limitato. Ora la mia nuova brillante regola è resa inutile e infranta.


Non sono sicuro che la versione gratuita di NetBalancer permetta ancora la limitazione della larghezza di banda. Citando la pagina di download : "La versione non registrata funziona solo come un'applicazione di monitoraggio e non supporta priorità o regole".
Gras Double

Sospiro. Curioso ora di quando è cambiato. Non ho installato Origin dall'ultimo "aggiornamento" del desktop di gioco.
zaTricky,

2

Ecco il mio povero mans throttling:

Non limita esattamente la larghezza di banda, ma piuttosto sospende / riprende il processo di consumo della larghezza di banda e quindi libera della larghezza di banda per altre applicazioni. Ed è gratis!

È necessario PsSuspend.exe (ho inserito questo file in C: \ tools \ sysinternals) e un file batch (ad es.) 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

Ora apri una riga di comando come amministratore ed esegui il file batch con il programma throttles come parametro

slow.bat filetransfer.exe

(sostituisci filetransfer.exe con il nome del tuo programma)

Al termine, premere CTRL-C e annullare il batch.

Se il programma è ancora in esecuzione, è consigliabile riprendere il programma nel caso in cui il batch sia stato interrotto mentre il programma era sospeso:

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

(sostituisci filetransfer.exe con il nome del tuo programma)


Questo non risolve davvero il problema. È una singola correzione del processo, devi conoscere il processo che sta controllando la larghezza di banda e non devi utilizzarlo attivamente.
Dan Atkinson,

1
Se vuoi "limitare la larghezza di banda di un processo in esecuzione" (questa è la domanda), conosci il processo, giusto? E i miei processi che consumano tutta la larghezza di banda sono soprattutto i caricamenti (rende la mia Internet non utilizzabile per nient'altro) e forse anche i download. Il mio "povero throttling" fa il lavoro: posso caricare e usare ancora Internet. E sì, non è una soluzione perfetta. È per uomini poveri, non per l'acquisto di software.
Bebbo,

1
Sono d'accordo con @ dan-atkinson. NetBalancer è un buon esempio in cui la versione gratuita funzionerà perfettamente nello stesso caso d'uso di questo. Questo metodo ha anche delle limitazioni: - Richiede passaggi ingombranti / manuali - Non è possibile specificare quale dovrebbe essere il limite di larghezza di banda. - Questo metodo può semplicemente spostare l'uso indesiderato "stabile" in picchi e depressioni meno desiderabili. - L'applicazione non risponderà / in ritardo
zaTricky

Il geek in me si chiede se questo potrebbe effettivamente essere un buon modo economico per fare le cose, ma con un timeout molto più basso come 50ms. Quindi ci sarebbero molte sospensioni / sospensioni, ma l'esperienza potrebbe essere più fluida. Non so come il tempo di sospensione sia effettivamente ridotto a una velocità di upload ridotta, ma è qualcosa con cui sperimentare ...
pgr

1

È possibile utilizzare Criteri di gruppo di Windows per limitare la larghezza di banda di qualsiasi processo. Vai a:

  • Start Menu> Esegui> gpedit.msc
  • Configurazione computer / utente (scegli l'uno o l'altro)> Impostazioni di Windows> QoS basata su criteri

Qui puoi vedere le politiche attuali e crearne di nuove:

  • Fai clic con il pulsante destro del mouse su "QoS basata su criteri" o vai su "Azione"> Crea nuovo criterio ...
  • Quindi seguire la procedura guidata per creare una nuova politica di limitazione.

La procedura guidata consente di creare un criterio per limitare la larghezza di banda per:

  • Tutto sul tuo computer
  • Processi specifici
  • Siti Web specifici (solo per applicazioni che utilizzano protocolli HTTP)

E le tue politiche possono quindi essere filtrate per:

  • Protocolli TCP o UDP
  • IP di origine / destinazione
  • Porte di origine / destinazione

Puoi anche creare questi criteri in Powershell eseguendo:

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

Sebbene ciò possa richiedere i diritti di amministratore e sembra che ci sia un bug in cui le politiche create in questo modo non verranno visualizzate nella GUI.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.