Jak ograniczyć przepustowość programów w Windows?
Czy istnieje technika w Windows, która może selektywnie ograniczyć przepustowość uruchomionego procesu?
Czy istnieje technika w Windows, która może selektywnie ograniczyć przepustowość uruchomionego procesu?
Używam Net Limiter , który ma darmową wersję, ale niestety musisz zapłacić za funkcję ograniczania .
NetLimiter to doskonałe narzędzie do kontroli i monitorowania ruchu internetowego przeznaczone dla systemu Windows. Za pomocą NetLimitera możesz ustawić limity prędkości pobierania/wysyłania dla aplikacji lub nawet pojedynczych połączeń i monitorować ich ruch internetowy.
Wraz z tą unikalną funkcją, Netlimiter oferuje kompleksowy zestaw internetowych narzędzi statystycznych. Obejmuje on pomiar ruchu w czasie rzeczywistym oraz długoterminowe statystyki ruchu internetowego dla poszczególnych aplikacji.
Istnieją dobre powody, aby przyjrzeć się podejściu “routera skierowanego do Internetu” do zarządzania siecią jako całością - jednak ponieważ pierwotne pytanie było specyficzne, a użytkownik może być bardzo dobrze jedynym komputerem w sieci, jest to kwestia drugorzędna.
Zgodnie z jedną z innych topowych odpowiedzi, przez chwilę testowałem NetBalancer . Działa naprawdę dobrze - i jest łatwy do skonfigurowania.
NetBalancer jest dostępny do kupienia na ich stronie internetowej za około 50$. Wersja próbna/darmowa pozwala na monitorowanie połączeń - ale nie pozwala na throttling.
Alternatywą jest NetLimiter . Ma bezpłatny okres próbny - ale zaczyna się od ~$20 za wersję Lite lub ~$30 za wersję Pro. NetLimiter jest wypróbowaną i przetestowaną aplikacją dla wielu administratorów.
Kiedy kończy się okres próbny NetLimitera, dopóki nie kupisz licencji, staje się on tylko narzędziem monitorującym - i nie obsługuje już throttlingu. To nadal może być użyteczne - ale nie w tym przypadku.
Chociaż używanie inteligentnego / wysoce konfigurowalnego routera jest zwykle lepszym podejściem do wholistycznego zarządzania siecią, rozłączenie między tym a oryginalnym pytaniem nie jest wyjaśnione w odpowiedzi @ZaB. Oryginalne pytanie pyta konkretnie o proces - którego router nie ma sposobu na niezawodne zidentyfikowanie.
Jedyną odmianą, która jest bliska użyteczności na tym końcu, jest sytuacja, w której aplikacja komunikuje się tylko przez określony kanał lub typ ruchu, który może być łatwo zidentyfikowany przez router. Przykładem może być pobieranie plików Origin przez EA:
Origin obecnie korzysta z Akamai. Zazwyczaj ustawiam automatyczne pobieranie/aktualizacje na dowolny czas - ale wolałbym, żeby nie wykorzystywało to całej przepustowości łącza, kiedy jestem zajęty robieniem innych, ważniejszych rzeczy. Tak się składa, że Origin jest bardzo zły w tym rodzaju rzeczy , dlatego nie obsługuje harmonogramów pobierania ani dławienia pobierania. Obecnie mój pulpit pobiera grę z serwera “a1750.d.akamai.net”. Router MikroTik (przykład inteligentnego routera) może odnotować, że ta nazwa DNS została użyta (będzie ona w cache DNS wraz z adresem IP) i może być skonfigurowany tymczasowo tak, aby dodać adres IP serwera docelowego do “listy adresowej”. Cały ruch z/do listy adresowej może zostać dodany do kolejki dławienia, tym samym, technicznie rzecz biorąc, dławiąc pojedynczą aplikację.
Powyższe podejście jest jednak naiwne. EA może w każdej chwili zmienić nazwę serwera, używany protokół, lub inna niepowiązana usługa korzystająca z infrastruktury Akamai może zostać nieumyślnie zdławiona. Teraz moja nowa, błyszcząca reguła jest bezużyteczna i zepsuta.
Możesz użyć zasad grupy Windows, aby zdławić przepustowość dowolnego procesu. Przejdź do:
Tutaj możesz zobaczyć aktualne polityki i utworzyć nowe przez:
Kreator pozwala na stworzenie polityki dławienia przepustowości dla:
A Twoje polityki mogą być następnie filtrowane według:
Możesz również utworzyć te polityki w Powershell uruchamiając:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Chociaż może to wymagać uprawnień administratora, i wydaje się, że jest błąd gdzie polityki utworzone w ten sposób nie pojawią się w GUI.
Oto mój biedny throttling:
Nie ogranicza on dokładnie pasma, ale raczej zawiesza/wznawia proces pożerający pasmo i w ten sposób zwalnia część pasma dla innych aplikacji. I jest darmowy!
Potrzebujesz PsSuspend.exe (umieściłem ten plik w C:™tools\sysinternals) i plik wsadowy (np.) 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
Teraz otwórz wiersz poleceń jako administrator i uruchom plik wsadowy z programem throttles jako parametrem
slow.bat filetransfer.exe
(zamień filetransfer.exe na nazwę swojego programu)
Jeśli skończysz, naciśnij CTRL-C i anuluj plik wsadowy.
Jeśli program jest nadal uruchomiony, rozważ wznowienie działania programu w przypadku, gdy przerwałeś wykonywanie wsadu, gdy program był zawieszony:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(zastąp filetransfer.exe nazwą swojego programu)