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, 4825 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Windows Server
gelöst Windows Server 2012 Std - Windows Update Dienst - 100 Prozent CPU Auslastung (7)

Frage von harald.schmidt zum Thema Windows Server ...

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 ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(2)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
Lokales Adminprofil defekt (15)

Frage von Yannosch zum Thema Windows 7 ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (11)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (9)

Frage von zelamedia zum Thema Internet Domänen ...