Gibt es eine Technik in Windows, die die Bandbreite eines laufenden Prozesses selektiv begrenzen kann?
Gibt es eine Technik in Windows, die die Bandbreite eines laufenden Prozesses selektiv begrenzen kann?
Antworten:
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
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.
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.
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.
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.
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)
Mithilfe der Windows-Gruppenrichtlinie können Sie die Bandbreite jedes Prozesses drosseln. Gehe zu:
Hier können Sie die aktuellen Richtlinien anzeigen und neue Richtlinien erstellen:
Mit dem Assistenten können Sie eine Richtlinie erstellen, um die Bandbreite für Folgendes zu beschränken:
Und Ihre Richtlinien können dann gefiltert werden nach:
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.