Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: tray-park

tray-park (Level 1) - Jetzt verbinden

01.02.2011 um 16:40 Uhr, 8808 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 ..
Ähnliche Inhalte
Hyper-V
Verständnisfrage zu CPU Auslastung
Frage von AndreasOCHyper-V5 Kommentare

Hallo zusammen, ich bei uns einen Server mit mehreren VMs. Nun beschwerten sich ein paar Leute das eine VM ...

Switche und Hubs
SG300 Routing und CPU Auslastung
Frage von mario89Switche und Hubs5 Kommentare

Hallo Leute, nachdem ich von eurer Seite das letzte mal schon sehr gute Hilfestellungen bekommen habe, muss ich mich ...

Windows Server
Hohe CPU-Auslastung durch EventLog
Frage von gullieWindows Server10 Kommentare

Moin in die Runde, ich habe gerade auf einem Exchange (Server 2012 R2 => VM) das Problem, dass mein ...

Debian
Htop zeigt CPU Auslastung nicht korrekt
Frage von FireEmeraldDebian6 Kommentare

Schönen Abend, auf einem VServer mit 2 Cores zeigt mir htop bei beiden Cores jeweils 100.0% Usage an. Bei ...

Neue Wissensbeiträge
Microsoft
PowerShell script für LAPS
Information von kgborn vor 18 StundenMicrosoft2 Kommentare

Kurzer Hinweis für Admins im AD-Umfeld. Ich bin die Tage auf das PowerShell Script der Woche “Local Administrator Password ...

Windows 10
Windows 10 bis Version 1803 und das Zwangs-Upgrade
Information von kgborn vor 18 StundenWindows 10

Ich denke, die meisten Admins hier werden Systeme mit Windows 10 Enterprise einsetzen und Updates per WSUS/SCCM oder ähnlichem ...

Microsoft Office
BSI-Empfehlungen für die Office-Konfiguration
Information von kgborn vor 18 StundenMicrosoft Office

Kurze Information für Admins, die Office verwalten. Das BSI hat einige Regeln für die Absicherung von Office-Konfigurationen veröffentlicht. Ich ...

Windows 10

Sandy-Bridge plus Nvidia plus Win10 1903 braucht Hotfix

Information von DerWoWusste vor 5 TagenWindows 101 Kommentar

Es gibt ein Problem in der seltenen Konstellation Nvidia-Grafikkarte/Sandy-Bridge-CPU/Win10v1903: die von Nvidia vorgeschlagenen Treiber lassen sich nicht installieren. verlinkt ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell Skript für Reg Datei ändern
gelöst Frage von SoccerdeluxBatch & Shell16 Kommentare

Hallo zusammen, ich muss auf einem Windows 10 Pc ein Skript ausführen lassen was sich alle 5 Minuten wiederholt. ...

LAN, WAN, Wireless
WLAN in Veranstaltungshalle
Frage von coltseaversLAN, WAN, Wireless14 Kommentare

Hallo zusammen, für eine Halle mit 1300 m² suche ich derzeit nach einer WLAN-Hotspot-Lösung für bis zu 500 User ...

Windows 10
Windows 10 Logonskript greift nicht
Frage von xbast1xWindows 1013 Kommentare

Hallo zusammen, da sich die per GPO gemappten Laufwerke bei allen Usern schließen und das Problem sich nicht lösen ...

LAN, WAN, Wireless
Eigenes LAN mit WLAN (Internet) vom Nachbarn verbinden
Frage von kaniggelLAN, WAN, Wireless12 Kommentare

Hallo, mein Provider hat mir den DSL-Anschluss gekappt. Wie kann ich bis das wieder funktioniert mein LAN mit dem ...