it-swarm.com.de

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

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

84
James McMahon

Ich verwende Net Limiter , das 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 Übertragungsratenbeschränkungen 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 eine Echtzeit-Verkehrsmessung und eine langfristige Internet-Verkehrsstatistik pro Anwendung

21
user

Es gibt gute Gründe, sich für die Verwaltung eines Netzwerks als Ganzes mit dem Ansatz des "Internet-Routers" 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 eine Weile NetBalancer ausprobiert. 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 für die Lite-Version oder ~ $ 30 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 kein Drosseln 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 das ganzheitliche Netzwerkmanagement. Die Trennung zwischen diesem und der ursprünglichen Frage wird in der Antwort von @ ZaB jedoch 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. Origin ist zufällig sehr schlecht bei dieserArt von Sache , daher 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 zu/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 könnte zu einem Zeitpunkt 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.

9
zaTricky

Hier drosselt mein armer Mann:

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

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

2
bebbo

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, indem Sie:

  • 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 in Powershell auch 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.

0
Silveri