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

PowerShell - Sehr hohe CPU Auslastung

Frage Entwicklung Batch & Shell

Mitglied: tray-park

tray-park (Level 1) - Jetzt verbinden

01.02.2011 um 16:40 Uhr, 7038 Aufrufe, 16 Kommentare

Windows Server 2008 R2
X7550 2,0 Ghz
8GB RAM

Hi,

ich habe ein kleines Skript geschrieben, welches xml Dateien in einem Ordner rekursiv nach Inhalten durchsucht.

Ich bekomme 6 xml Dateien geliefert. Eine davon heißt "x.xml" in dieser suche ich nach einem String.

Wird der String dieser in xml Dateien gefunden, wird diese Datei in "x.ok" umbenannt und die restlichen xml Dateien in einen Unterordner verschoben.

Wird der String nicht gefunden, wird die Datei in "x.error" umbenannt und eine E-Mail an mich gesendet.

Diese Überprüfung geschieht im Minuten-Takt.

Der Aufruf erfolgt druch einen geplanten Task, welcher eine Batchdatei ruft. Die Batchdatei öffnet dann das PowerShell-Skript.

Sobald das PowerShell-Skript ausgeführt wird, erhöht sich die CPU Auslastung auf 100%, bis das Skript alles abgearbeitet hat.

Leider kann ich das Skript nicht nutzen, wenn minütlich der Rechner ca. 30 Sekunden auf 100% steht.

Gibt es eine Möglichkeit diese Auslastung zu reduzieren?

Weiß hier jemand rat?

Freue mich über jede Rückmeldung.

Liebe Grüße


Tray
Mitglied: 90776
01.02.2011 um 16:58 Uhr
hallo tray-park

kannst du mal die batch und das powershell script posten?

aber so auf anhin würd ich dir raten im batch ein start /(Basispriorität) also z.b. start /low

Grüsse
Switcher
Bitte warten ..
Mitglied: tray-park
01.02.2011 um 17:21 Uhr
Hi,

zuerst mal die Batch
01.
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe E:\Check\PShell\CheckSkript.ps1
Kann ich durch die Prioritätsparameter tatsächlich die CPU Auslastung veringern?
Bitte warten ..
Mitglied: 90776
01.02.2011 um 17:45 Uhr
ja, kommt es darauf an, wie lange das skript braucht?

setzt mal

01.
start /low C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe E:\Check\PShell\CheckSkript.ps1
und überprüfe mal die auslastung

Grüsse
Switcher
Bitte warten ..
Mitglied: tray-park
02.02.2011 um 09:01 Uhr
Das funktioniert leider nicht.

Auslastung ist immer noch auf 100%. Ich hab das Skript die Nacht laufen lassen und heute morgen war der Server weg.

Ich poste gleich mal das Skript.
Bitte warten ..
Mitglied: tray-park
02.02.2011 um 09:07 Uhr
01.
# Allgemeine Variablen 
02.
    # Hostname 
03.
        $Server = "Server1" 
04.
    # SMTP Server IP 
05.
        $SMTPHostIP = "192.168.1.20" 
06.
    # Absender E-Mail Adresse 
07.
        $Absender = "Server1@test.de" 
08.
    # Empfänder E-Mail Adresse 
09.
        $Empfaenger = "ich@test.de" 
10.
# Allgemeine Variablen 
11.
 
12.
function SendOkay($Error, $Einlesen) 
13.
14.
	$ConDatumFunc = get-date -uformat "%Y.%m.%d - %H:%M" 
15.
	 
16.
		$SmtpClient = new-object system.net.mail.smtpClient 
17.
	    $MailMessage = new-Object system.net.mail.mailmessage 
18.
		#$att = new-object Net.Mail.Attachment($Einlesen) 
19.
        $SmtpClient.Host = $SMTPHostIP 
20.
        $mailmessage.from = $Absender 
21.
        $mailmessage.To.add($Empfaenger) 
22.
        $mailmessage.Subject = “$ConDatumFunc $Server Download Fehler Requester Stadt Frankfurt” 
23.
        $mailmessage.IsBodyHtml = $true 
24.
        $mailmessage.Body = "" 
25.
		#$mailmessage.Attachments.Add($att) 
26.
        $smtpclient.Send($mailmessage) 
27.
28.
 
29.
cd\ 
30.
d: 
31.
cd "XMLCheck\Ergebnisse\download" 
32.
 
33.
$ConErgebnissePfad 	= "k:\XMLCheck\Ergebnisse\download" 
34.
$ConStringOK 		= '<status="ok">' 
35.
$ConDatum = get-date -uformat %Y%m%d-%H%M 
36.
 
37.
if (Test-Path $ConErgebnissePfad\*_r.xml) 
38.
39.
	foreach ($Einlesen in get-ChildItem $ConErgebnissePfad -Include *"_r.xml" -Recurse) 
40.
41.
		if ($Pruefen = get-content $Einlesen | Select-String $ConStringOK) 
42.
43.
			write-host "Funktion Okay" 
44.
			Get-ChildItem $Einlesen | Rename-Item -NewName $ConDatum"_XML.ok" 
45.
46.
		 
47.
		 else 
48.
			{	 
49.
			write-host "Sende Error-Message" 
50.
			SendOkay $Error $Einlesen 
51.
			Get-ChildItem $Einlesen | Rename-Item -NewName $ConDatum"_XML.error" 
52.
53.
54.
55.
else 
56.
{	 
57.
write-host "Sende Error-Message" 
58.
SendOkay $Error $Einlesen 
59.
}	 
60.
Move-Item -path $ConErgebnissePfad\*.xml -destination $ConErgebnissePfad\Cache\
Bitte warten ..
Mitglied: 90776
02.02.2011 um 15:42 Uhr
sorry aber beim Powershell Skript kann ich dir leider nicht weiterhelfen

versuchs mal so... lass das script laufen und geh in den taskmanager, dort dann manuell die priorität auf niedrig stellen, vielleicht gehts so

Grüsse
Switcher

PS: wie ist das? leuft das PS-Skript in einer schlaufe oder wird es jedes mal neu gestartet?
Bitte warten ..
Mitglied: tray-park
02.02.2011 um 16:32 Uhr
Im Taskmanager die Prio zu ändern nützt nichts, da das Skript durchgängig läuft.

Dann müsste ich ja jeden Aufruf der PowerShell abfangen und verändern.
Bitte warten ..
Mitglied: 90776
02.02.2011 um 20:08 Uhr
schon klar aber versuch es mal ob es überhaupt mit der priorität fubnktioniert

sonst weiss ich auch nit was du machen könntest

Grüsse
Switcher
Bitte warten ..
Mitglied: Miyamoto
06.02.2011 um 21:46 Uhr
Hi,
was wir jetzt mal machen ist den Skript, Stück für Stück testen, hier bei musst du immer die CPU-Auslastung beobachten.

  1. Ruf das Skript mal so auf (ohne Task) und lass es lauen.
  2. Lass das Skript mal auf einen Ordner los wo du zu 100% weist das keine Datei deinen gesuchten String enthält.
  3. Lass das Skript mal auf einen Ordner los wo du zu 100% weist das eine Datei deinen gesuchten String enthält.
  4. Wiederhole alle Test, aber kommentiere die Mail-Funktion mal aus.
  5. Überprüfe mal wie viele Datei er so pro Durchlauf überprüfen muss (6 Stück???), poste mal die Anzahl und wie viele Zeilen das so ca. sind pro Datei.

Wenn du fertig bist Teile uns mal das Ergebnis mit.

Gruß Miyamoto
Bitte warten ..
Mitglied: tray-park
10.02.2011 um 09:45 Uhr
Hi,

ich hab das mal mit 50 xml Dateien in dem Ordner versucht

1 & 2 81% Auslastung
3. 17% Auslastung
4. Wenn eine Datei den String enthällt 28% Auslastung. Wenn keine Datei den String enthällt 30%
5. Es sind 6 Dateien pro Lieferung. Wenn ich die Datei im iEx oder FF öffne sind es pro XML Datei ca 20 Zeilen. Mit Notepad++ wird alles in einer Zeile angezeigt.
Ich bekomme diese 6 Dateien minütlich geliefert und werte sie minütlich aus. Somit erhöht sich die Dateianzahl natürlich auf 24*60*6 Dateien am Ende des Tages, bis ein weiteres Skript dann alle in eine zip Datei packt.

Alles in Kombination 100% weiterhin.

Grüße
Bitte warten ..
Mitglied: Miyamoto
10.02.2011 um 10:56 Uhr
Hi,

eine weitere Frage:
Auf was für ein System läuft das Skript??
  • CPU (MHz)= ???
  • Arbeitsspeicher = ???
  • CPU Last wenn das Skript nicht lauft (Durchschnitt) = ???

Gruß Miyamoto
Bitte warten ..
Mitglied: tray-park
10.02.2011 um 11:46 Uhr
Hi,

Windows Server 2008 R2
X7550 2,0 Ghz
8GB RAM

Die Last im Leerlauf liegt durchschnittlich bei 2%
Bitte warten ..
Mitglied: Miyamoto
10.02.2011 um 13:08 Uhr
Hi,

Ok, der Rechner sollte das locker schaffen

Meine Vermutung ist, das es an der Mail Funktion liegt.

Gruß Miyamoto
Bitte warten ..
Mitglied: tray-park
10.02.2011 um 14:13 Uhr
Hi,

die wird aber gar nicht erst gerufen, wenn der String nicht gefunden wird.

Ich glaube eher, dass es am Verschieben der Dateien liegt.

Ich glaube ja nicht, dass man die PowerShell so rufen kann, dass Sie weniger CPU-Last verbraucht?
Bitte warten ..
Mitglied: Miyamoto
10.02.2011 um 20:51 Uhr
Hi,
bei dem Test den du durchgeführt hast (Test2), war der gesuchte String nicht in deinen Daten vorhanden und du hattest eine CPU von 81%.
Als du die mal Funktion auskommentiert hast, bei dem selben Test, hattest du nur eine CPU Last von 30%.

Oder habe ich was falsch verstanden????

Wenn du glaubst das es an dem Verschieben liegt, den kommentiere es doch einfach mal aus und teste es.


Gruß Miyamoto
Bitte warten ..
Mitglied: tray-park
19.04.2011 um 12:57 Uhr
Hi,

die hohe Auslastung wurde tatsächlich durch das Verschieben der XML Dateien verursacht.

Ich habe nun den Teil des Skripts rausgenommen der die XML Files verschiebt. Die Files werden direkt nach dem Check gelöscht.

Danke für eure Hilfe. Hat mir wie immer sehr geholfen.

Liebe Grüße

Tray
Bitte warten ..
Neuester Wissensbeitrag
Ä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 Office
Word 2016 hohe CPU Auslastung auf Terminalserver 2012 R2 HyperV VM (4)

Frage von FunKehl zum Thema Microsoft Office ...

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

Frage von thomasreischer zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...