Esiste una tecnica in Windows che può limitare selettivamente la larghezza di banda di un processo in esecuzione?
Esiste una tecnica in Windows che può limitare selettivamente la larghezza di banda di un processo in esecuzione?
Risposte:
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
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.
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.
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.
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.
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)
È possibile utilizzare Criteri di gruppo di Windows per limitare la larghezza di banda di qualsiasi processo. Vai a:
Qui puoi vedere le politiche attuali e crearne di nuove:
La procedura guidata consente di creare un criterio per limitare la larghezza di banda per:
E le tue politiche possono quindi essere filtrate per:
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.