Auslastung Tracken - Win10 Embedded

Diskutiere Auslastung Tracken - Win10 Embedded im Windows 10 Allgemeines Forum im Bereich Windows 10 Foren; Hallo Zusammen, ich habe eine Frage zu Win 10 (Embedded Version) In diversen Benchmark-Tools lassen sich die "aktuell Verbrauchten Ressourcen -...

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Hallo Zusammen,

ich habe eine Frage zu Win 10 (Embedded Version)
In diversen Benchmark-Tools lassen sich die "aktuell Verbrauchten Ressourcen - wie CPU Auslastung und RAM" anschauen. (Genau wie im Task-Manager die letzten 60sec angezeigt werden)
Nun möchte ich aber diverse Anwendungen starten und nach ein paar Tagen wissen - "Wie hoch war die maximale erreichte CPU und RAM Auslastung".
Für Server gibt diverse Tools die sowas können, aber die sind für meinen Fall überdimensioniert und sehr kostspielig.
Wenn ich wüsste, wo der Task-Manager die Werte herholt, könnte ich vielleicht das ganze Mitlesen und Aufzeichnen.

Habt Ihr eine Idee oder kennt Ihr ein Tool was mein Problem löst?:confused:

Besten Dank und Gruss
Dominic
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Also die Prozessorlast lässt sich schon mal problemlos mittracken und loggen.

Dieses Script:
Code:
@Echo off
Chcp 1252 >nul
Echo Prozessorlast > %userprofile%\Desktop\Prozessorlast.txt
:Start
Wmic path Win32_processor get loadpercentage >> %userprofile%\Desktop\Prozessorlast.txt
Timeout /t 1 /nobreak
Goto Start
loggt Dir die Prozessorlast jede Sekunde in die Prozessorlast.txt, die auf dem Desktop angelegt wird. Die Speicherauslastung lässt sich mit Wmi bestimmt auch ermitteln und entsprechend mitloggen. Muss ich später mal nachsehen, wenn ich am PC bin. Dann kann man das kombinieren und zusammen in eine Datei loggen lassen.
 

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Einfach nur klasse Alex - Besten Dank.

Noch macht dein Script nicht ganz was es soll.. das wird aber ziemlich sicher an Mir liegen. Meine Programmierkenntnisse sind nicht die besten ;) :o
Bekomme ich aber schon iwie ergoogelt, wie das mit .bat Datei funktioniert. Danke für dein Support.
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Nicht als .bat sondern als .cmd speichern und ausführen! Ansonsten, warte mal bis heute abend. Vielleicht bekommst Du von mir noch eine einfachere Lösung.
 

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Okey Alex - Besten Dank -

Ich warte auf dein “Experten-Wissen“ und fange nicht mehr an nachgooglen :)

Gruss Dominic
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Du kannst es auch damit probieren:

Code:
$Test = 1
$Prozout = "Prozessorlast"
$Ramout = "Speicherlast"
$Out = "$env:userprofile\desktop\CpuRam.txt"
Do
{
$Date = get-date -format G
$CPU = (get-wmiobject Win32_processor).Loadpercentage
$Mem = (get-wmiobject Win32_PerfRawData_PerfOS_Memory).CommittedBytes /1GB
Write-output $Date | out-file $Out -append -noclobber
Write-Output "$Prozout = $CPU %" | out-file $Out -append -noclobber
Write-Output "$Ramout = $Mem GigaByte" | out-file $Out -append -noclobber
Write-Output " " | out-file $Out -append -noclobber
Sleep 1
}
While ($Test = 1)

Den Code in einer Textdatei mit der Endung .ps1 speichern und dann über einen Rechtsklick und "Mit Powershell ausführen" laufen lassen. Das Script loggt Datum, Uhrzeit, Prozessorlast und Speicherlast, legt dann eine einsekündige Pause ein und springt wieder an den Anfang, um den Vorgang erneut auszuführen. Eben so lange, bis Du das Powershellfenster schliesst. Die Datei wird nur neu angelegt, wenn sie nicht existiert, ansonsten wird die Ausgabe nur noch an sie angehängt wenn das Script zur Ausführung gebracht wird. Die Angabe bei "Sleep" markiert die einzulegende Pause und kann von Dir an Deine Vorstellungen angepasst werden. Das "/1GB" am Ende der Zeile "$Mem" sorgt für die Umwandlung der in Bytes ausgegebenen Speicherlast in die Gigabyte-Angabe.

Das Ergebnis sieht dann so aus:

Auslastung - Log.jpg

In meinem Beispiel hab ich "Sleep" auf 9 Sekunden gesetzt, so dass die geloggten Daten einen exakt zehnsekündigen Abstand aufweisen.

Wenn Du das Script über eine Verknüpfung zur Ausführung bringen willst, dann nimm die Befehlszeile: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle minimized %userprofile%\Desktop\CpuRamAuslastung.ps1. Solltest Du das Script woanders unterbringen, den Pfad korrekt angeben! Bei "-Windowstyle" kannst Du auch "hidden" angeben, um die Taskleistenschaltfläche auszublenden. Dann muss das Script über den Taskmanager abgebrochen werden. Wenn Du in der Verknüpfung dann bei "Ausführen" noch "minimiert" einstellst, siehst Du vom Script gar nichts mehr. Möchtest Du die Ausgabedatei woanders haben, pass in der Variable "$Out" den Pfad der Ausgabedatei entsprechend an.
 
Zuletzt bearbeitet:

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
TipTop.. funktioniert GENAU wie von Dir beschrieben :D
Die Auswertung wird noch spannend, aber ich bin da zuversichtlich.

Danke nochmals und Gruss
Dominic
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Danke!

Kann man problemlos noch um weitere Angaben ergänzen und z.B. den aktuellen Prozessortakt, die Prozesse mit der höchsten Auslastung, die Netzwerkauslastung (Up- und Download) oder ähnliches mitloggen lassen. Ich könnte mir sogar vorstellen, dass ich eine ähnliche Auswertung in mein Tool integriere. Dann hätte man einen solchen Tracker im Kontextmenü des Trayicons zur Verfügung. Wäre eine interessante Geschichte, um jederzeit ein schnelles Log der wichtigsten Performancewerte zu erhalten.
 

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Echt Genial!

So kann man wirklich schnell und einfach - vor allem bei knapp dimensionierter Hardware - eine Aussage treffen.
Belastet das System "kaum" (anders wie Benchmark Monitoring, da läuft sicher mehr im Hintergrund ab).
Nachteil ist bei langzeit Aufzeichnung natürlich die Auswertung - Da kommt man um Tools wie MatLab oder so wohl nicht drumherum.
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Man könnte die Ausgabe auch im CSV Format veranlassen, dann kann man das Log in Excel importieren und sortieren. Lass mir mal ein paar Minuten Zeit :-)

@Dominic
Ich werde Dir später eine umgestellte Version des Scriptes zukommen lassen. Die gibt die Auslastungen in Tabellenform aus und kann dann leicht in Excel importiert werden. Dann ist das auswerten auch kein Problem mehr.
 
Zuletzt bearbeitet:

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
So ich hab das Script jetzt mal umgestellt, damit die Werte in eine Tabelle geschrieben werden:

Code:
$Endlos = 1
$Dateout = "Datum"
$Timeout = "Zeit"
$Prozout = "Prozessor %"
$Ramout = "Speicher GB"
$Out = "$env:userprofile\desktop\CpuRam.txt"
Write-output "$Dateout   |   $Timeout   |   $Prozout  |	$Ramout" | out-file $Out -append -noclobber
Do
{
$Date = get-date -format dd.MM.yy
$Time = get-Date -format HH:mm:ss
$CPU = (get-wmiobject Win32_processor).Loadpercentage
$Mem = (get-wmiobject Win32_PerfRawData_PerfOS_Memory).CommittedBytes /1GB
Write-output "$Date | $Time   |	 $CPU	|       $Mem" | out-file $Out -append -noclobber
Sleep 1
}
While ($Endlos = 1)

Excel erkennt die Spaltenköpfe und Spalten auch sauber. Ausserdem wird das Log dadurch natürlich deutlich kompakter als zuvor, weil etwa ein Drittel weniger in der Datei landet.

So sieht das Ergebnis aus:

Auslastungen - Tabelle.jpg

Die Zeile "Prozessor %" ohne Werte ist nur dem sekündlichen Logging geschuldet. Wenn Du die Verzögerung bei "Sleep" anpasst, sollten in allen Zeilen Werte drin stehen.

Das Log sollte also jetzt einfacher auszuwerten sein.
 
Zuletzt bearbeitet:

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Guten Morgen Alex,
Ich bin begeistert. Funktioniert genau wie von Dir beschrieben!
Besten Dank.. total geile Lösung! Hab gerade richtig Freude dran :sing :danke

Ich frage mich gerade, wieso ich Trottel hier noch nie eine Frage gestellt habe.. Habe mich mal ein bissl umgeschaut, mega kompetentes Forum :up
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Ich bin bekannt dafür, dass ich immer zuerst auf die Bordmittel von Windows zurückgreife, wenn es darum geht ein Problem zu lösen :-)
Denn Windows liefert jede erdenkliche Information frei Haus, man muss nur zugreifen und sie sich holen. Mir bereitet es immer richtig Freude, wenn ich solche Problemstellungen vor mir habe und sie dann, statt mit Fremdtools, per Script mit einer simplen WMI Abfrage lösen kann.
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Und hier habe ich noch eine etwas erweiterte Version des Scriptes. Das trackt jetzt auch die Lese- und Schreibleistung auf den Datenträgern mit

Code:
$Endlos = 1
$Dateout = " Datum"
$Timeout = " Zeit  "
$Prozout = " CPU %  "
$Ramout = "Speicher Bytes"
$DriveR = " Disk read Bytes "
$DriveW = "Disk write Bytes"
$Out = "$env:userprofile\desktop\CpuRam.txt"
Write-output "$Dateout   |  $Timeout | $Prozout  | $Ramout|$DriveR|$DriveW|" | out-file $Out -append -noclobber
Write-output "------------------------------------------------------------------------------------" | out-file $Out -append -noclobber
Do
{
$Date = get-date -format dd.MM.yy
$Time = get-Date -format HH:mm:ss
$CPU = (get-wmiobject Win32_processor).Loadpercentage
$Mem = (get-wmiobject Win32_PerfRawData_PerfOS_Memory).CommittedBytes
$LwRead = (get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk -filter "name='_total'").DiskReadBytesPerSec
$LwWrite = (get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk -filter "name='_total'").DiskWriteBytesPerSec
Write-output "$Date | $Time |	$CPU	| $Mem	| 	$LwRead	  |	$LwWrite	   |" | out-file $Out -append -noclobber
Sleep 1
}
While ($Endlos = 1)

Ausserdem hab ich die Tabelle jetzt etwas sauberer formatiert.

So siehts jetzt aus:

Auslastung - mit Datenträgerlast.jpg

Du kannst also, wenn Du möchtest, auch diese Version nehmen und gleich noch die Datenträger mittracken.
 
Zuletzt bearbeitet:

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Hallo Alex,

total geil.. ich habe über das Wochenende eine "Trocken Übung" gemacht und ausgewertet. Genau damit kann ich arbeiten..

Aber mal eine andere Frage: Ich wollte in 5Hz - sprich alle 200ms einstellen. Hab dann im Code hinter "Sleep .2" geschrieben.. aber in Wirklichkeit nimmt er weiterhin nur ca jede Sekunde auf.
Und wenn ich die DO/While-Schleife 1mal ausführe und einfach dort 5mal die Parameter einlese (mit jeweils 200ms pause) funktioniert das Skript nicht mehr. Bin ich Zeitlich limitiert?

Gruss
Dominic
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
Du bist zeitlich sogar sehr limitiert, denn alleine bis Du die Daten erhältst, dauert es schon mindestens eine Sekunde :-)
Ein Abruf in 0,2 Sek ist also so gar nicht machbar. Das geht dann nur, wenn man das in ein richtiges Programm giesst.

Ich habs übrigens sogar noch weiter verfeinert, denn in der aktuellen Fassung des Scriptes rechne ich die Auslastungen des Speichers und der Datenträger in GB bzw. MB um, lasse sie runden und auf zwei Nachkommastellen reduzieren.

Code:
$Endlos = 1
$Dateout = " Datum  "
$Timeout = "  Zeit  "
$Prozout = " Prozessor "
$Ramout = "  Speicher "
$DriveR = " Disk Read "
$DriveW = " Disk Write"
$Out = "$env:userprofile\desktop\CpuRamDrive.txt"
$Line = "|---------------------------------------------------------------------------|"
Write-Host -Foregroundcolor Green $Line
Write-Host -Foregroundcolor Green "|  $Dateout| $Timeout |$Prozout|$Ramout|  $DriveR  | $DriveW |"
Write-Host -Foregroundcolor Green $Line
Write-Output $Line | out-file $Out -append -noclobber
Write-Output "|  $Dateout| $Timeout |$Prozout|$Ramout|  $DriveR  | $DriveW |" | out-file $Out -append -noclobber
Write-Output $Line | out-file $Out -append -noclobber
Do
{
$Date = get-date -format dd.MM.yy
$Time = get-Date -format HH:mm:ss
$CPU = (get-wmiobject Win32_Processor).LoadPercentage
$Mem = (get-wmiobject Win32_PerfRawData_PerfOS_Memory).CommittedBytes 
$Mem = [math]::round($Mem/1GB, 2)
$LwRead = (get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk -filter "name='_total'").DiskReadBytesPerSec
$LwRead = [math]::round($LwRead/1MB, 2)
$LwWrite = (get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk -filter "name='_total'").DiskWriteBytesPerSec
$LwWrite = [math]::round($LwWrite/1MB, 2)
Write-Host -Foregroundcolor Green "| $Date | $Time | $CPU	% | $Mem   GB | $LwRead	   MB | $LwWrite	 MB |"
Write-Output "| $Date | $Time | $CPU	% | $Mem   GB | $LwRead   	MB | $LwWrite   	 MB |" | out-file $Out -append -noclobber
Sleep 1
}
While ($Endlos = 1)

Ausserdem gibt dieses Script die Daten parallel im Powershellfenster und ins Logfile aus.

CpuRamDrive-PS.jpg
 

Thomas62

Erfahrener Benutzer
Dabei seit
30.07.2015
Beiträge
4.039
Ort
Wunderschönen Berlin
Version
DESKTOP Win 10 Pro 64 bit Build aktuell
System
ASUS Prime A320M-K RYZEN 5 3600 6C/12TR x 3.60GHz +32 GB Ram PALIT 1660 STORMx 6GB Ram Win 10 Pro
@areiland

Wann gehst du eigentlich Arbeiten ? Urlaub , Krank oder ?

Du bist ja selber schon eine wandelnder Computer . Soviel geballtes wissen.

Bitte trage alles zusammen und mach ein Buch draus , aber kleine Lacher und Anekdoten sollten bei sein.

Falls du das jemals vorhast ? Drücke ich dir alle Daumen und noch mehr.

Lg
 

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Das geht dann nur, wenn man das in ein richtiges Programm giesst.
<-- Wie hoch ist der Aufwand für ein solches Tool? Für meinen Fall würde sich das echt Lohnen :confused:

Und nochmals - besten Dank - Du hast mir schon mega geholfen :)
 

areiland

Super-Moderator
Dabei seit
25.08.2014
Beiträge
29.083
Ort
Ludwigshafen
Version
Windows 10 Pro x64 immer aktuell!
System
970M Pro3, FX8350, RX560, 16GB DDR3 1600, 860Evo256 GB, MK7559GSXP, SH224BB, BenQ GW2780
@Thomas62
Die aktuelle Fassung des Scriptes hab ich am Samstag abend vorm Fernseher mit meinem Tab zusammengeschustert. So wie die anderen Fassungen des Scriptes übrigens auch, die ich mit dem Tab über die Bildschirmtastatur geschrieben habe. Und mir bringt das immer selbst auch was, denn das korrekte umrechnen, runden und beschränken der Werte auf x Nachkommastellen hatte ich auch nicht parat und musste mir das erarbeiten.

@Dominic
Da das ein für mich interessantes Projekt ist - was man ja an den immer weiter ausgebauten Versionen des Scriptes sehen kann - werde ich mal versuchen, das als natives (selbstverständlich portables) Windows Tool umzusetzen. Dann sollten die bisherigen Latenzen zu umgehen sein.
 

Dominic

Benutzer
Threadstarter
Dabei seit
30.01.2019
Beiträge
59
Ich bin richtig Glücklich, dass meine Fragestellung Dich interessiert!

Ich hab mich mal ein bissl umgeschaut und stolper immer über Script-Tools`s die via Phython (oder soooo ähnlich :o ) das auch darstellen können?
Noch verstehe ich die Zusammenhänge nicht - ein kurzer Tipp ob ich auf den Holzweg bin, wäre sehr Nett :rolleyes:
 
Thema:

Auslastung Tracken - Win10 Embedded

Auslastung Tracken - Win10 Embedded - Ähnliche Themen

CPU Auslastung auf Kern 1 sporadisch auf 100% (i9-9900k) (Win10 Pro): Hallo Microsoft Community! Habe mir im Dezember ein neues Setup gebaut, und habe feststellen müssen das es ein Problem gibt. Vorab ein paar...
100 % CPU und Datenträgerauslastung: Hallo liebe Community, auch wenn das Thema schon hunderte Mal existiert muss ich es erneut aufreißen: Auf meinem Notebook mit Windows 10 Home...
Oben