PowerShell - Sehr hohe CPU Auslastung

Mitglied: tray-park

tray-park (Level 1) - Jetzt verbinden

01.02.2011 um 16:40 Uhr, 10971 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
90776 (Level 2)
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

Kann ich durch die Prioritätsparameter tatsächlich die CPU Auslastung veringern?
Bitte warten ..
Mitglied: 90776
90776 (Level 2)
01.02.2011 um 17:45 Uhr
ja, kommt es darauf an, wie lange das skript braucht?

setzt mal


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

Bitte warten ..
Mitglied: 90776
90776 (Level 2)
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
90776 (Level 2)
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 :) face-smile

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 ..
Heiß diskutierte Inhalte
Windows Server
Aufgabenplanung PowerShell Skript startet nicht
shooanVor 1 TagFrageWindows Server36 Kommentare

Hallo Zusammen, ich habe ein Skript bekommen das ich gerne so einstellen will das dieses beim Start des Exchangeservers aktiviert werden soll. Ein Ausführung ...

Internet
Webcam oder IPcam aus dem Internet erreichbar?
dertowaVor 1 TagFrageInternet17 Kommentare

Hallo zusammen, mal eine spezielle Frage, vielleicht kann jemand einen Dienst aufgrund guter Erfahrung empfehlen. Die Hündin einer guten Bekannten bekommt Nachwuchs und dafür ...

Windows Netzwerk
Computername erneut vergeben?
gelöst malkieVor 1 TagFrageWindows Netzwerk10 Kommentare

Guten Morgen, wir haben in der Firma Computernamen nach dem Muster: PC-Abteilung-Nummer (PC-IT-1) So, aktuell habe ich mal gelernt ganz früher, dass man den ...

LAN, WAN, Wireless
Unterschiedliche IP-Adressbereiche im Netzwerk
achkleinVor 16 StundenFrageLAN, WAN, Wireless17 Kommentare

Hallo, ich stehe vor einem Problem mit der WLAN-Verbindung zum Router (Fritzbox Cable 6490). Das verbundene Notebook hat die Adresse 192.168.0.164, Gateway ist 192.168.0.149: ...

Backup
Zusätzlicher Backupschutz gegen Ransomware Befall
staybbVor 1 TagFrageBackup4 Kommentare

Hallo zusammen, wir nutzen Veeam Backup & Replication als Backup für unsere Server und Files. Es werden immer on-side beim Kunden Backups auf einem ...

Microsoft Office
E-Mail kommt nicht an
gelöst HeinrichMVor 1 TagFrageMicrosoft Office10 Kommentare

Hallo zusammen, in der letzten Zeit häufen sich die Meldungen, dass E-Mails nicht ankommen. Es ist kein Muster zu erkennen. Mal kommt eine Mail ...

Router & Routing
Verkaufe apu4.d4 Set
pasu69Vor 1 TagAllgemeinRouter & Routing11 Kommentare

Guten Abend zusammen, ich hätte ein APU4.D4 Bundle abzugeben, dass ich erst Anfang März gekauft habe. Leider ist die Hardware tatsächlich zu schwach, um ...

Hardware
Temperaturüberwachung Raum
ingo1988Vor 1 TagFrageHardware8 Kommentare

Hallo, ich brauche eure Hilfe. Ich möchte gerne eine Temperaturüberwachung installieren. Es sollte über Wifi funktionieren, ist aber kein Muss. Außerdem soll eine Alarmbenachrichtigung ...