Chcę obliczyć bajtów wysłanych i otrzymanych przez konkretny proces. Chcę użyć do tego celu powłoki. Co mogę zrobić za pomocą Monitora zasobów-> Aktywność sieciowa. Jak mogę to zrobić za pomocą get-counter?Sieciowe wykorzystanie procesu przy użyciu PowerShell
Odpowiedz
Jest naprawdę dobry artykuł Skrypciarzu na temat korzystania z Get-Counter
komandletu tutaj:
Sztuką będzie znalezienie licznika, które są potrzebne, i nie sądzę, można uzyskać ziarnistości podążasz, ponieważ są to te same liczniki, których używa PerfMon. Jest bardziej skoncentrowany na całym interfejsie sieciowym niż na poszczególnych procesach korzystających z interfejsu. Powiedziawszy to, jeśli jest to jedyna rzecz przy użyciu danego interfejsu, powinna to zrobić ładnie.
Wystarczy popatrzeć na opcjach interfejsu sieci dostępnych na początek:
(get-counter -list "Network Interface").paths
Nie można, jak się wydaje. Absolutnie nie mogę znaleźć liczników, od których odczytuje monitor wydajności, chociaż inne osoby mogą dzwonić. Może być też inny sposób niż licznik, ale o to właśnie prosiłeś.
Przyglądając się licznikom, najbliższym znalezionym obiektem są liczniki "IO odczytanych bajtów/s" i "IO Write Bytes/s" na obiekcie procesu.
Problem polega na tym, że liczą się one nie tylko w aktywności sieciowej. Opis w PerfMon mówi:
„Ten licznik zlicza wszystkie I/O aktywności generowanej przez proces do obejmują pliku, sieci i urządzenia I/O”.
W związku z tym, jeśli wiesz, że proces, który chcesz monitorować tylko lub głównie pisze do połączenia sieciowego, może to być lepsze niż nie mierzenie czegokolwiek.
Można by go o to tak (użyję Chrome jako przykład, ponieważ jest dogodnie działa i wykorzystując dane teraz):
get-counter "\Process(chrome*)\IO Read Bytes/sec"
To będzie po prostu daje odczyt jednorazową . Jeśli chcesz dalej czytać, możesz dodać ciągły przełącznik.
Zwrócony obiekt PerformanceCounterSampleSet nie jest całkiem niezły, ale rzeczywisty odczyt można znaleźć w zmiennej obj.countersamples.cookedvalue.
Lista będzie dość długa (jeśli przeglądasz podobnie jak ja). Chrome działa w wielu oddzielnych procesach, więc zrobimy trochę matematyki, aby je wszystkie zsumować i zaprezentować w KB.
Wynik końcowy:
get-counter "\Process(chrome*)\IO Read Bytes/sec" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum/1KB), 2)
}
Running to będzie po prostu stale wyjście A odczyt ile kb/s Chrome korzysta.
- 1. Stop „odkrywca” proces całkowicie przy użyciu PowerShell
- 2. Określanie wirtualnego rozmiaru procesu przy użyciu delphi
- 3. Wykorzystanie pamięci wątku lub procesu w Javie
- 4. Rosnące wykorzystanie pamięci rezydentnej (RSS) procesu Java
- 5. Dstat Wykorzystanie procesora dla jednego określonego procesu
- 6. Zdalne archiwizowanie plików przy użyciu startowego procesu PowerShell i polecenia invoke
- 7. jak zaktualizować plik json przy użyciu PowerShell
- 8. Wykonywanie pliku EXE przy użyciu skryptu PowerShell
- 9. Wyślij pocztę przy użyciu PowerShell za pełnomocnika
- 10. Wykonaj kod C# przy użyciu Powershell
- 11. Jak ustawić strefę czasową przy użyciu Powershell
- 12. TimeStamp na nazwę pliku przy użyciu PowerShell
- 13. Zmienić Local Security Policy przy użyciu PowerShell
- 14. wyjście rur do schowka przy użyciu PowerShell
- 15. XML tablica mieszająca przy użyciu PowerShell
- 16. Import-Module z GAC dla PowerShell Wykorzystanie
- 17. Wykorzystanie PowerShell zawinąć istniejący obiekt COM
- 18. PowerShell - pobierz identyfikator procesu wywoływanej aplikacji
- 19. Powershell ISE zawiesza się podczas procesu zabijania
- 20. Jak zamknąć wszystkie otwarte pliki sieciowe w PowerShell?
- 21. Niebuforowany odczyt z procesu przy użyciu podprocesu w Pythonie
- 22. Kopiowanie pliku przy użyciu kopii robo i procesu
- 23. Znajdź identyfikator procesu przy użyciu netstat w połączeniu z ps
- 24. Użycie procesora iOS dla każdego procesu przy użyciu sysctl()?
- 25. Błąd systemu podczas wykonywania podprocesów przy użyciu procesu wieloprocesowego
- 26. Jak poczekać na zakończenie procesu przy użyciu tcl-expect
- 27. Połączenia sieciowe z listonoszem
- 28. Znajdź pierwszy plik pasujący do wzorca przy użyciu PowerShell
- 29. C# Powershell snapin nie rejestruje się przy użyciu installutil
- 30. Tworzenie partycji kostki SSAS 2008 przy użyciu Powershell?
Spróbuj spojrzeć na polecenie cmdlet 'Get-Counter' – Syddraf