2010-04-28 22:55:18 +0000 2010-04-28 22:55:18 +0000
86
86

Wie kann man die Bandbreite von Programmen unter Windows begrenzen?

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

Antworten (4)

22
22
22
2012-02-18 20:40:44 +0000

Ich verwende Net Limiter , das eine kostenlose Version hat, aber leider müssen Sie für die Begrenzungsfunktion bezahlen .

NetLimiter ist ein ultimatives Tool zur Kontrolle und Überwachung des Internetverkehrs, das für Windows entwickelt wurde. Sie können NetLimiter verwenden, um Download/Upload-Übertragungsratenlimits für Anwendungen oder sogar einzelne Verbindungen festzulegen und deren Internetverkehr zu überwachen.

Zusammen mit dieser einzigartigen Funktion bietet Netlimiter ein umfassendes Set an statistischen Internet-Tools. Dazu gehören die Messung des Datenverkehrs in Echtzeit und langfristige Internetverkehrsstatistiken pro Anwendung

9
9
9
2015-09-10 18:35:38 +0000

Es gibt gute Gründe, den “Internet facing router”-Ansatz für die Verwaltung eines Netzwerks als Ganzes zu betrachten - da die ursprüngliche Frage jedoch spezifisch war und der Benutzer sehr wohl der einzige Computer im Netzwerk sein kann, ist dies ein zweitrangiges Anliegen.

NetBalancer


Gemäß einer der anderen Top-Antworten habe ich eine Zeit lang NetBalancer getestet. Er funktioniert wirklich gut - und ist einfach zu konfigurieren.

NetBalancer kann auf deren Webseite für etwa $50 erworben werden. Die Test-/Gratisversion erlaubt die Überwachung von Verbindungen - aber keine Drosselung.

NetLimiter


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

Wenn die Testphase von NetLimiter endet, bis Sie eine Lizenz kaufen, wird es 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).


Obwohl die Verwendung eines intelligenten/hochkonfigurierbaren Routers normalerweise der bessere Ansatz für eine ganzheitliche Netzwerkverwaltung ist, wird der Zusammenhang zwischen dem und der ursprünglichen Frage in @ZaBs Antwort nicht erklärt. Die ursprüngliche Frage fragt speziell nach einem Prozess - den ein Router nicht zuverlässig identifizieren kann.

Die einzige Variante, die in diesem Zusammenhang annähernd sinnvoll ist, ist, wenn eine Anwendung nur über einen bestimmten Kanal oder eine bestimmte Art von Datenverkehr kommuniziert, der vom Router leicht identifiziert werden kann. Ein Beispiel hierfür sind die Origin-Downloads von EA:

Origin verwendet derzeit Akamai. Normalerweise stelle ich automatische Downloads/Aktualisierungen so ein, dass sie jederzeit laufen - aber ich würde es vorziehen, dass sie nicht die gesamte Leitungskapazität nutzen, während ich mit anderen wichtigeren Dingen beschäftigt bin. Origin ist zufällig sehr schlecht bei diesem Art von Ding , daher unterstützt es keine Download-Zeitpläne oder Download-Drosselung. Derzeit lädt mein Desktop ein Spiel über den Server “a1750.d.akamai.net” herunter. Ein MikroTik-Router (ein Beispiel für einen intelligenten Router) kann zur Kenntnis nehmen, dass dieser DNS-Name verwendet wurde (er befindet sich mit einer IP-Adresse im DNS-Cache) und kann so konfiguriert werden, dass die IP-Adresse des Zielservers vorübergehend zu einer “Adressliste” hinzugefügt wird. Der gesamte Verkehr zu/von der Adressliste kann zu einer gedrosselten Warteschlange hinzugefügt werden, wodurch technisch gesehen eine einzelne Anwendung gedrosselt wird.

Der obige Ansatz ist jedoch naiv. EA könnte zu jeder Zeit den Servernamen oder das verwendete Protokoll ändern, oder ein anderer, nicht verwandter Dienst, der die Akamai-Infrastruktur nutzt, könnte versehentlich gedrosselt werden. Jetzt ist meine glänzende neue Regel nutzlos und kaputt.

3
3
3
2018-11-18 10:38:36 +0000

Sie können die Windows-Gruppenrichtlinie verwenden, um die Bandbreite jedes Prozesses zu drosseln. Gehen Sie zu:

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

Hier können Sie die aktuellen Richtlinien sehen und neue erstellen, indem Sie:

  • Entweder Sie klicken mit der rechten Maustaste auf “Policy-based QoS” oder gehen auf “Action” > Create new policy…
  • Folgen Sie dann dem Assistenten, um eine neue Drosselungsrichtlinie zu erstellen.

Mit dem Assistenten können Sie eine Richtlinie zur Bandbreitendrosselung für Folgendes erstellen:

  • Alles auf Ihrem Computer
  • Bestimmte 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-/Ziel-Ports

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

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

Obwohl dies möglicherweise Administratorrechte erfordert und es einen Fehler zu geben scheint, bei dem auf diese Weise erstellte Richtlinien nicht in der GUI angezeigt werden.

2
2
2
2016-10-20 10:05:21 +0000

Hier ist meine armselige Drosselung:

Sie begrenzt nicht wirklich die Bandbreite, sondern setzt den bandbreitenfressenden Prozess aus/fort und gibt so etwas Bandbreite für andere Anwendungen frei. Und es ist kostenlos!

Sie benötigen PsSuspend.exe (ich habe diese Datei 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 eine Kommandozeile als Administrator und führen Sie die Batch-Datei mit dem Drosselprogramm als Parameter

slow.bat filetransfer.exe

(ersetzen Sie filetransfer.exe mit Ihrem Programmnamen)

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

Wenn das Programm noch läuft, denken Sie daran, das Programm wieder aufzunehmen, falls Sie den Batch unterbrochen haben, während das Programm angehalten wurde:

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

(ersetzen Sie filetransfer.exe durch Ihren Programmnamen)