Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrkern CPU Auslastung erkennen und verarbeiten

Frage Entwicklung Batch & Shell

Mitglied: Alucard7

Alucard7 (Level 1) - Jetzt verbinden

28.02.2011, aktualisiert 01.03.2011, 4773 Aufrufe, 4 Kommentare

Hallo an alle Mitglieder,

ich habe ein kleines Problem und zwar soll ich eine kleine Batch-Datei schreiben, die bestimmtes Servermonitoring betreibt.
Das klappt soweit ganz gut, nur habe ich jetzt noch Probleme bei der Erkennung der CPU Auslastung bei Mehrkern CPUs.

Gibt es irgendwelche Möglichkeiten die Auslastung der einzelnen Kerne auszulesen, sodass man diese am Ende in einer bat verarbeiten kann?

mfg Alucard7
Mitglied: AndreasHoster
28.02.2011 um 12:10 Uhr
Möglichkeiten gibts fast immer, Frage ist nur der Aufwand es zu realisieren
Das Zauberwort hier heißt WMI (=Windows Management Instrumentation).
Die WMI Klasse für den Prozessor: Win32_PerfFormattedData_PerfOS_Processor
Doku bei MS: http://msdn.microsoft.com/en-us/library/aa394271(v=vs.85).aspx

Integration in Batch dürfte über WMIC.exe gehen, ich benutze für sowas immer den Windows Scrpting Host.
Wie es im WSH aussieht, sieht man am einfachsten, indem man die Scriptomatic von MS benutzt: http://www.microsoft.com/germany/technet/datenbank/articles/600322.mspx
Download der Scriptomatic: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=09dfc342-64 ...
Bitte warten ..
Mitglied: Alucard7
28.02.2011 um 17:59 Uhr
Hi,
danke für die schnelle Antwort.
War aber mein Fehler zu erwähnen, dass das Skript auf win 2000 server laufen muss und deshalb wohl wmi ausscheidet, da ich da eine Fehlermeldung bekam beim ausführen, dass iwelche dlls fehlen. Hab allerdings auch mit einer Version von win xp getestet, da ich keine für früher im inet finden konnte.
Diese Klasse hab ich schon ausprobiert über vbs, jedoch erhielt ich für mich nicht nachvollziehbare Ergebnisse, bzw. keine eindeutige Auslastung für verschiedene Kerne.
Falls ich iwo nicht richtig getestet habe, bitte berichtie mich ;)

Habe imo keine Zeit für deinen 2. Absatz zu testen, melde mcih später ncohmal.

mfg Alucard7
Bitte warten ..
Mitglied: AndreasHoster
01.03.2011 um 08:42 Uhr
Beispiel aus der Scriptomatic (leicht abgewandelt):
01.
On Error Resume Next 
02.
 
03.
Const wbemFlagReturnImmediately = &h10 
04.
Const wbemFlagForwardOnly = &h20 
05.
' Hier die abzufragenden Computer eintragen . ist der lokale 
06.
arrComputers = Array(".") 
07.
For Each strComputer In arrComputers 
08.
   WScript.Echo 
09.
   WScript.Echo "==========================================" 
10.
   WScript.Echo "Computer: " & strComputer 
11.
   WScript.Echo "==========================================" 
12.
 
13.
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
14.
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor", "WQL", _ 
15.
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 
16.
 
17.
   For Each objItem In colItems 
18.
      WScript.Echo "Name: " & objItem.Name 
19.
      WScript.Echo "PercentIdleTime: " & objItem.PercentIdleTime 
20.
      WScript.Echo "PercentInterruptTime: " & objItem.PercentInterruptTime 
21.
      WScript.Echo "PercentPrivilegedTime: " & objItem.PercentPrivilegedTime 
22.
      WScript.Echo "PercentProcessorTime: " & objItem.PercentProcessorTime 
23.
      WScript.Echo "PercentUserTime: " & objItem.PercentUserTime 
24.
      WScript.Echo "*****************************************************" 
25.
   Next 
26.
Next 
27.
 
Das ergibt bei mir als Ausgabe:
Computer: .
Name: 0
PercentIdleTime: 33
PercentInterruptTime: 0
PercentPrivilegedTime: 0
PercentProcessorTime: 66
PercentUserTime: 63
*
Name: 1
PercentIdleTime: 63
PercentInterruptTime: 0
PercentPrivilegedTime: 0
PercentProcessorTime: 36
PercentUserTime: 33
*
Name: _Total
PercentIdleTime: 0
PercentInterruptTime: 0
PercentPrivilegedTime: 0
PercentProcessorTime: 51
PercentUserTime: 48
*

Name ist die Instanz wie im PerfMon ausgewählt (0,1 und _Total)
Wie man bei PercentProcessorTime sieht, ist der Eine zu 36, der Andere zu 66 Prozent ausgelastet, in der Summe das System zu 51 Prozent.
Ist doch das, was Du haben willst, oder nicht?
Und laut http://www.microsoft.com/germany/technet/datenbank/articles/600682.mspx ist WMI auch bei Win2000 dabei.
Bitte warten ..
Mitglied: Alucard7
01.03.2011 um 09:06 Uhr
Hi,
Ja das ist genau das was ich brauche, Vielen Dank!

Das mit wmi war auf die wmic.exe bezogen und mal wieder unklar ausgedrückt von mir xD. Über diese wollte ich mit "WMIC CPU GET LoadPercentage" auf die CPU zugreifen, jedoch war diese .exe nicht auf dem System vorhanden und jene von win xp wollte win 2000 nicht nehmen.

Wie gesagt, dass mit der Win32_PerfFormattedData... hatte ich ausprobiert, nur konnte ich die mehrfachen Ausgaben nicht als verwertbare Ergebnisse erkennen, ala den Wald vor lauter Bäumen nicht xD.

Nochmals vielen Dank!

mfg alucard7

Edit: Problem besteht weiterhin, da die Klasse Win32_PerfFormattedData_PerfOS_Processor nicht von win 2000 unterstützt wird. Als Ersatz soll die Klasse Win32_PerfRawData_PerfProc_Process verwendet werden, jedoch spuckt diese lange Reihen von:

Name: 1 PercentProcessorTime: 435685000000
Name: 2 PercentProcessorTime: 665937500
Name: 3 PercentProcessorTime: 312500
...

aus. Damit weiß ich gar ncihts anzufangen.

mfg alucard7
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
gelöst Windows Update bei virtuellem Windows 7 - hohe CPU Auslastung und keine Reaktion (6)

Frage von IT-Alexander zum Thema Windows 7 ...

Microsoft
Server 2012 cpu Auslastung durchgehend bei 10 prozent (1)

Frage von thomasreischer zum Thema Microsoft ...

Netzwerkmanagement
gelöst Sophos UTM220 - Appliance CPU Auslastung LOG-Datei downloaden? (7)

Frage von 1410640014 zum Thema Netzwerkmanagement ...

Hyper-V
Verständnisfrage zu CPU Auslastung (5)

Frage von AndreasOC zum Thema Hyper-V ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...