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

85

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

James McMahon
la source
3
Il existe une liste complète d'applications qui peuvent faire cela: alternativeto.net/software/netbalancer
bgmCoder
Les nouvelles mises à jour de NetBalencers ne limitent pas les programmes conformément à leur déclaration, la version d’essai n’est que de 7 jours, vous ne pouvez limiter que 3 logiciels (quand il décide de fonctionner) et le coût total du service complet est de 50 dollars. Ne même pas la peine.

Réponses:

21

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.

utilisateur
la source
8
Non, les versions lite / pro, qui permettent de limiter le trafic, ne sont pas gratuites.
demonkoryu
Celui-ci, au contraire , fonctionne assez bien sur Windows XP.
GSerg
NetLimiter 4 a toujours la fonctionnalité de limitation, et il est dans la version gratuite, mais est limité dans le temps.
Dan Atkinson
9

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

NetLimiter


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.

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

zaTricky
la source
Je ne suis pas sûr que la version gratuite de NetBalancer autorise toujours la limitation de la bande passante. Citant la page de téléchargement : "La version non enregistrée fonctionne uniquement comme une application de surveillance et ne prend en charge aucune priorité ni règle".
Gras Double
Soupir. Curieux de savoir quand cela a changé. Je n'ai pas installé Origin depuis la dernière "actualisation" de mon ordinateur de jeu.
zaTricky
2

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)

bebbo
la source
Cela ne résout pas vraiment le problème. C'est un correctif de processus unique, vous devez connaître le processus qui monopolise la bande passante et vous ne devez pas l'utiliser activement.
Dan Atkinson
1
Si vous voulez "limiter la bande passante d'un processus en cours d'exécution" (telle est la question), vous connaissez le processus, n'est-ce pas? Et mes processus qui consomment toute la bande passante sont surtout des uploads (rend mon internet inutilisable pour autre chose) et peut-être aussi des téléchargements. Mon "contrôle des pauvres" fait le travail: je peux télécharger et utiliser encore Internet. Et oui, ce n'est pas une solution parfaite. C'est pour les hommes pauvres - pas d'acheter un logiciel.
Bebbo
1
Je suis d'accord avec @ dan-atkinson. NetBalancer est un bon exemple où la version gratuite fonctionnera parfaitement dans le même cas d'utilisation. Cette méthode présente également des limitations: - Requiert des étapes lourdes / manuelles - Il n’ya aucun moyen de spécifier la limite de bande passante requise. - Cette méthode peut simplement déplacer l’utilisation indésirable "stable" en pics et creux moins souhaitables. - L'application va devenir inactive / laggy
zaTricky
Le geek en moi se demande si cela pourrait réellement être un moyen bon et peu coûteux de faire avancer les choses, mais avec un délai d’attente bien inférieur à 50 ms. Donc, il y aurait beaucoup de suspensions / suspens, mais l'expérience pourrait être plus douce. Je ne sais pas comment le temps passé en suspension correspond à un taux de téléchargement réduit, mais c'est quelque chose à expérimenter ...
pgr
1

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

Silveri
la source