Existe-t-il une technique dans Windows capable de limiter sélectivement la bande passante d'un processus en cours d'exécution?
Existe-t-il une technique dans Windows capable de limiter sélectivement la bande passante d'un processus en cours d'exécution?
Réponses:
J'utilise Net Limiter , qui a une version gratuite, mais malheureusement, vous devrez payer pour la fonctionnalité de limitation .
NetLimiter est un outil ultime de contrôle et de surveillance du trafic Internet conçu pour Windows. Vous pouvez utiliser NetLimiter pour définir des limites de taux de transfert de téléchargement pour les applications ou même une connexion unique et surveiller leur trafic Internet.
Outre cette fonctionnalité unique, Netlimiter propose un ensemble complet d’outils statistiques Internet. Il comprend une mesure du trafic en temps réel et des statistiques de trafic Internet à long terme par application.
Il y a de bonnes raisons de considérer l'approche "Internet face à un routeur" pour la gestion d'un réseau dans son ensemble - cependant, comme la question initiale était spécifique et que l'utilisateur peut très bien être le seul ordinateur du réseau, il s'agit d'une préoccupation secondaire.
Selon l'une des autres principales réponses, j'ai testé NetBalancer pendant un certain temps . Cela fonctionne vraiment bien - et est facile à configurer.
NetBalancer est disponible à l'achat sur leur page Web pour environ 50 $. La version d'essai / gratuite vous permet de surveiller les connexions - mais ne permet pas la limitation.
L'alternative est NetLimiter . Il a une période d'essai gratuite - mais commence à environ 20 $ pour la version Lite ou ~ 30 $ pour la version Pro. NetLimiter est l’application éprouvée de nombreux administrateurs système.
Lorsque la version d'essai de NetLimiter se termine, jusqu'à l'achat d'une licence, celle-ci devient un outil de surveillance uniquement - et ne prend plus en charge la régulation. Cela peut toujours être utile - mais pas pour ce cas d'utilisation.
Bien que l'utilisation d'un routeur intelligent / hautement configurable soit généralement la meilleure approche de la gestion de réseau globale , la déconnexion entre cette question et la question initiale n'est pas expliquée dans la réponse de @ ZaB. La question initiale concernait spécifiquement un processus - qu'un routeur n'a aucun moyen fiable d'identifier.
La variante la plus utile à cette fin est si une application ne communique que sur un canal ou un type de trafic spécifique, facilement identifiable par le routeur. Un exemple est ci-dessous des téléchargements Origin d'EA:
Origin utilise actuellement Akamai. En règle générale, je configure les téléchargements / mises à jour automatiques pour qu'ils s'exécutent à tout moment - mais je préférerais que toutes les capacités de ligne ne soient pas utilisées pendant que je suis occupé à d'autres tâches plus importantes. L'origine se trouve être très mauvais à ce genre de chosePar conséquent, il ne prend pas en charge les programmes de téléchargement ni la limitation de téléchargement. Actuellement, mon bureau télécharge un jeu en utilisant le serveur "a1750.d.akamai.net". Un routeur MikroTik (un exemple de routeur intelligent) peut noter que ce nom DNS a été utilisé (ce sera dans le cache DNS avec une adresse IP) et peut être configuré temporairement pour ajouter l'adresse IP du serveur de destination à une "liste d'adresses". ". Tout le trafic à destination / en provenance de la liste d'adresses peut être ajouté à une file d'attente restreinte, limitant ainsi techniquement une seule application.
L'approche ci-dessus est cependant naïve. EA peut à tout moment modifier le nom du serveur, le protocole utilisé ou un autre service non lié utilisant l'infrastructure Akamai pourrait être limité par inadvertance. Maintenant, ma nouvelle règle brillante est rendue inutile et brisée.
Voici mon pauvre homme étranglant:
Elle ne limite pas exactement la bande passante, mais suspend / reprend le processus de consommation de bande passante et libère ainsi une certaine bande passante pour d'autres applications. Et c'est gratuit!
Vous avez besoin de PsSuspend.exe (je mets ce fichier dans C: \ tools \ sysinternals) et un fichier de traitement par lots (par exemple, 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
Ouvrez maintenant une ligne de commande en tant qu'administrateur et exécutez le fichier de commandes avec le programme de régulation en tant que paramètre.
slow.bat filetransfer.exe
(remplacez filetransfer.exe par le nom de votre programme)
Si vous avez terminé, appuyez sur CTRL-C et annulez le lot.
Si le programme est toujours en cours, envisagez de le reprendre au cas où vous auriez interrompu le lot alors que le programme était suspendu:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(remplacez filetransfer.exe par le nom de votre programme)
Vous pouvez utiliser la stratégie de groupe Windows pour limiter la bande passante de tout processus. Aller à:
Ici vous pouvez voir les politiques actuelles et en créer de nouvelles en:
L’assistant vous permet de créer une stratégie pour limiter la bande passante dans les cas suivants:
Et vos politiques peuvent ensuite être filtrées par:
Vous pouvez également créer ces politiques dans Powershell en exécutant:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Bien que cela puisse nécessiter des droits d’administrateur, il semble exister un problème qui fait que les stratégies créées de la sorte n'apparaîtront pas dans l’interface graphique.