web-dev-qa-db-fra.com

Un moyen de limiter la bande passante des programmes sous Windows?

Existe-t-il une technique dans Windows capable de limiter sélectivement la bande passante d'un processus en cours d'exécution?

84
James McMahon

J'utilise Net Limiter , qui a une version gratuite, mais vous devrez malheureusement 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.

21
user

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.

NetBalancer


Selon l’une des autres principales réponses, j’ai testé pendant un moment NetBalancer . 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.

NetLimiter


L'alternative est NetLimiter . Il a une période d'essai gratuite - mais commence à ~ 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.

Utilisation d’un routeur (en expliquant pourquoi ce n’est pas une bonne approche pour ce cas d’utilisation).


Bien que l’utilisation d’un routeur intelligent/hautement configurable soit généralement la meilleure approche de holistiquegestion de réseau, la déconnexion entre cette question et la question initiale n’est pas expliquée dans la réponse de @ZaB. La question initiale concerne spécifiquement un processus - qui 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 qu'il n'utilise pas toute la capacité de la ligne pendant que je suis occupé à d'autres tâches plus importantes. L’origine est très mauvaise à cecisorte de chose , elle ne prend donc pas en charge les calendriers de téléchargement ou de limitation des téléchargements. 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 pourrait, à anytime, changer le nom du serveur, le protocole utilisé ou tout autre service non associé utilisant l'infrastructure Akamai pourrait être étranglé par inadvertance. Désormais, ma nouvelle règle est rendue inutile et enfreinte.

9
zaTricky

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 commandes (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)

2
bebbo

Vous pouvez utiliser la stratégie de groupe Windows pour limiter la bande passante de tout processus. Aller à:

  • Menu Démarrer> Exécuter> gpedit.msc
  • Configuration ordinateur/utilisateur (choisissez l'une ou l'autre)> Paramètres Windows> QoS basée sur des stratégies

Ici vous pouvez voir les politiques actuelles et en créer de nouvelles en:

  • Cliquez avec le bouton droit de la souris sur «QoS basée sur les stratégies» ou sur «Action»> Créer une nouvelle stratégie….
  • Suivez ensuite l’assistant pour créer une nouvelle stratégie de limitation.

L'assistant vous permet de créer une stratégie pour limiter la bande passante dans les cas suivants:

  • Tout sur votre ordinateur
  • Processus spécifiques
  • Sites Web spécifiques (uniquement pour les applications utilisant les protocoles HTTP)

Et vos politiques peuvent ensuite être filtrées par:

  • Protocoles TCP ou UDP
  • IP source/destination
  • Ports source/destination

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, et il semble y avoir un bogue où les politiques ainsi créées n’apparaîtront pas dans l’interface graphique.

0
Silveri