PowerShell - Sehr hohe CPU Auslastung
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 159897
Url: https://administrator.de/contentid/159897
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
16 Kommentare
Neuester Kommentar
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
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
ja, kommt es darauf an, wie lange das skript braucht?
setzt mal
und überprüfe mal die auslastung
Grüsse
Switcher
setzt mal
start /low C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe E:\Check\PShell\CheckSkript.ps1
und überprüfe mal die auslastung
Grüsse
Switcher
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?
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?
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
sonst weiss ich auch nit was du machen könntest
Grüsse
Switcher
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.
Wenn du fertig bist Teile uns mal das Ergebnis mit.
Gruß Miyamoto
was wir jetzt mal machen ist den Skript, Stück für Stück testen, hier bei musst du immer die CPU-Auslastung beobachten.
- Ruf das Skript mal so auf (ohne Task) und lass es lauen.
- Lass das Skript mal auf einen Ordner los wo du zu 100% weist das keine Datei deinen gesuchten String enthält.
- Lass das Skript mal auf einen Ordner los wo du zu 100% weist das eine Datei deinen gesuchten String enthält.
- Wiederhole alle Test, aber kommentiere die Mail-Funktion mal aus.
- Ü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
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
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