Möglichkeit, die Bandbreite von Programmen unter Windows zu begrenzen?


85

Gibt es eine Technik in Windows, die die Bandbreite eines laufenden Prozesses selektiv begrenzen kann?


3
Hier gibt es eine ganze Liste von Anwendungen, die dies tun können: alternativeto.net/software/netbalancer
bgmCoder

Die neuen Updates von NetBalencers beschränken die Programme nicht gemäß ihrer Aussage, die Testversion ist nur 7 Tage lang, Sie können nur 3 Software-Versionen einschränken (wenn es funktioniert) und es kostet satte 50 Dollar für den vollen Service. Mach dir nicht mal die Mühe.

Antworten:


21

Ich benutze Net Limiter , der eine kostenlose Version hat, aber leider müssen Sie für die Einschränkungsfunktion bezahlen .

NetLimiter ist ein ultimatives Tool zur Steuerung und Überwachung des Internetverkehrs, das für Windows entwickelt wurde. Mit NetLimiter können Sie Übertragungsratenlimits für Downloads / Uploads für Anwendungen oder sogar für einzelne Verbindungen festlegen und deren Internetverkehr überwachen.

Neben dieser einzigartigen Funktion bietet Netlimiter umfangreiche statistische Tools für das Internet. Es umfasst Echtzeit-Verkehrsmessungen und Statistiken zum langfristigen Internetverkehr pro Anwendung


8
Nein, die Lite / Pro-Versionen, die eine Beschränkung des Datenverkehrs ermöglichen, sind nicht kostenlos.
Demonkoryu

Dieser funktioniert im Gegensatz dazu unter Windows XP recht gut.
GSerg

NetLimiter 4 verfügt weiterhin über die eingeschränkte Funktionalität und ist in der kostenlosen Version verfügbar, jedoch zeitlich begrenzt.
Dan Atkinson

9

Es gibt gute Gründe, sich mit dem Ansatz des "Internet-Routers" für die Verwaltung eines Netzwerks als Ganzes zu befassen. Da jedoch die ursprüngliche Frage spezifisch war und der Benutzer möglicherweise der einzige Computer im Netzwerk ist, ist dies zweitrangig.

NetBalancer


Nach einer der anderen Top-Antworten habe ich NetBalancer eine Weile getestet . Es funktioniert sehr gut - und ist einfach zu konfigurieren.

NetBalancer kann auf der Webseite für ca. 50 USD erworben werden. Mit der Testversion / kostenlosen Version können Sie Verbindungen überwachen, jedoch keine Drosselung zulassen.

NetLimiter


Die Alternative ist NetLimiter . Es hat eine kostenlose Testphase - beginnt jedoch bei ~ 20 USD für die Lite-Version oder ~ 30 USD für die Pro-Version. NetLimiter ist die bewährte Go-to-Anwendung für viele SysAdmins.

Wenn die Testversion von NetLimiter endet, bis Sie eine Lizenz erwerben, wird sie zu einem reinen Überwachungstool - und unterstützt keine Drosselung mehr. Dies kann immer noch nützlich sein - aber nicht für diesen Anwendungsfall.

Verwendung eines Routers (mit einer Erklärung, warum dies kein guter Ansatz für diesen Anwendungsfall ist).


Die Verwendung eines intelligenten / hoch konfigurierbaren Routers ist normalerweise der bessere Ansatz für ein ganzheitliches Netzwerkmanagement. Die Trennung zwischen diesem und der ursprünglichen Frage wird jedoch in der Antwort von @ ZaB nicht erläutert. Die ursprüngliche Frage bezieht sich speziell auf einen Prozess, den ein Router nicht zuverlässig identifizieren kann.

Die eine Variante, die in diesem Zusammenhang nahezu nützlich ist, besteht darin, dass eine Anwendung nur über einen bestimmten Kanal oder eine bestimmte Art von Datenverkehr kommuniziert, der bzw. die vom Router leicht identifiziert werden kann. Unten finden Sie ein Beispiel für die Origin-Downloads von EA:

Origin verwendet derzeit Akamai. Normalerweise stelle ich automatische Downloads / Updates so ein, dass sie jederzeit ausgeführt werden. Ich würde es jedoch vorziehen, wenn nicht die gesamte Leitungskapazität genutzt wird, während ich andere wichtigere Dinge erledige. Herkunft geschieht sehr zu schlecht bei dieser Art von SacheDaher unterstützt es keine Download-Zeitpläne oder Download-Drosselung. Momentan lädt mein Desktop ein Spiel über den Server "a1750.d.akamai.net" herunter. Ein MikroTik-Router (ein Beispiel für einen Smart-Router) kann feststellen, dass dieser DNS-Name verwendet wurde (er befindet sich im DNS-Cache mit einer IP-Adresse) und kann vorübergehend so konfiguriert werden, dass die IP-Adresse des Zielservers einer Adressliste hinzugefügt wird ". Der gesamte Verkehr zur / von der Adressliste kann zu einer gedrosselten Warteschlange hinzugefügt werden, wodurch technisch eine einzelne Anwendung gedrosselt wird.

Der obige Ansatz ist jedoch naiv. EA kann jederzeit den Servernamen, das verwendete Protokoll oder einen anderen nicht verwandten Dienst, der die Akamai-Infrastruktur verwendet, versehentlich drosseln. Jetzt ist meine glänzende neue Regel unbrauchbar und gebrochen.


Ich bin nicht sicher, ob die kostenlose Version von NetBalancer eine Bandbreitenbeschränkung zulässt. Zitieren der Downloadseite : "Die nicht registrierte Version funktioniert nur als Überwachungsanwendung und unterstützt keine Prioritäten oder Regeln."
Gras Double

Seufzer. Neugierig, wann sich das geändert hat. Ich habe Origin nicht installiert, seit ich meinen Gaming-Desktop das letzte Mal "aktualisiert" habe.
ZaTricky

2

Hier ist die Drosselung meines armen Mannes:

Die Bandbreite wird nicht genau begrenzt, sondern der Bandbreitenverbrauch wird angehalten / fortgesetzt, und somit wird eine gewisse Bandbreite für andere Anwendungen freigegeben. Und es ist kostenlos!

Sie benötigen PsSuspend.exe (ich habe diese Datei in C: \ tools \ sysinternals abgelegt) und eine Batch-Datei (zB 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

Öffnen Sie nun als Administrator eine Kommandozeile und führen Sie die Batch-Datei mit dem Throttles-Programm als Parameter aus

slow.bat filetransfer.exe

(Ersetzen Sie filetransfer.exe durch Ihren Programmnamen)

Wenn Sie fertig sind, drücken Sie STRG-C und brechen Sie den Stapel ab.

Wenn das Programm noch ausgeführt wird, können Sie das Programm fortsetzen, falls Sie den Stapel unterbrochen haben, während das Programm angehalten wurde:

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

(Ersetzen Sie filetransfer.exe durch Ihren Programmnamen)


Dies löst das Problem nicht wirklich. Es handelt sich um eine einzelne Prozesskorrektur. Sie müssen den Prozess kennen, der die Bandbreite beansprucht, und Sie müssen ihn nicht aktiv nutzen.
Dan Atkinson

1
Wenn Sie "die Bandbreite eines laufenden Prozesses begrenzen" möchten (das ist die Frage), kennen Sie den Prozess, oder? Und meine Prozesse, die die gesamte Bandbreite verbrauchen, sind insbesondere Uploads (macht mein Internet für nichts anderes nutzbar) und möglicherweise auch Downloads. Das Drosseln meines "armen Mannes" macht den Job: Ich kann das Internet hochladen und es trotzdem nutzen. Und ja - es ist keine perfekte Lösung. Es ist für arme Männer - keine Software kaufen.
Bebbo

1
Ich muss @ dan-atkinson zustimmen. NetBalancer ist ein gutes Beispiel, bei dem die kostenlose Version im selben Anwendungsfall perfekt funktioniert. Diese Methode hat auch Einschränkungen: - Erfordert umständliche / manuelle Schritte - Es gibt keine Möglichkeit anzugeben, wie hoch das Bandbreitenlimit sein soll. - Diese Methode kann einfach die "stabile" unerwünschte Verwendung in weniger wünschenswerte Spitzen und Täler verschieben. - Die Anwendung reagiert nicht mehr / verzögert
zaTricky

Der Geek in mir fragt sich, ob dies tatsächlich ein guter, billiger Weg ist, um Dinge zu erledigen, aber mit einer viel kürzeren Wartezeit von 50 ms. Es würde also viel Suspending / Unsuspending geben, aber die Erfahrung könnte flüssiger sein. Ich weiß nicht, wie die Suspending-Zeit tatsächlich auf eine reduzierte Upload-Rate zurückzuführen ist, aber es ist etwas, mit dem man experimentieren kann ...
pgr

1

Mithilfe der Windows-Gruppenrichtlinie können Sie die Bandbreite jedes Prozesses drosseln. Gehe zu:

  • Startmenü> Ausführen> gpedit.msc
  • Computer- / Benutzerkonfiguration (wählen Sie die eine oder andere Option)> Windows-Einstellungen> Richtlinienbasierte QoS

Hier können Sie die aktuellen Richtlinien anzeigen und neue Richtlinien erstellen:

  • Klicken Sie entweder mit der rechten Maustaste auf "Policy-based QoS" oder wählen Sie "Action"> Create new policy ...
  • Folgen Sie dann dem Assistenten, um eine neue Einschränkungsrichtlinie zu erstellen.

Mit dem Assistenten können Sie eine Richtlinie erstellen, um die Bandbreite für Folgendes zu beschränken:

  • Alles auf deinem Computer
  • Spezifische Prozesse
  • Bestimmte Websites (nur für Anwendungen, die HTTP-Protokolle verwenden)

Und Ihre Richtlinien können dann gefiltert werden nach:

  • TCP- oder UDP-Protokolle
  • Quell- / Ziel-IP
  • Quell- / Zielports

Sie können diese Richtlinien auch in Powershell erstellen, indem Sie Folgendes ausführen :

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

Dies erfordert möglicherweise Administratorrechte, und es scheint einen Fehler zu geben, bei dem Richtlinien, die auf diese Weise erstellt wurden, nicht in der Benutzeroberfläche angezeigt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.