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 - Skript benötigt 25 Prozess CPU-Last auf Server aber auf WS nur 13 Prozent

Frage Entwicklung Batch & Shell

Mitglied: thl1966

thl1966 (Level 1) - Jetzt verbinden

26.09.2012, aktualisiert 14:58 Uhr, 3441 Aufrufe, 6 Kommentare

Hallo liebe Forengemeinde,

habe ein Skript für die Überwachung eines bestimmten Prozesses auf einen Produktiv-Server 2008R2 programmiert, dass zufriedenstellend läuft.

Wenn ich das Skript sowohl in der 32-Bit Powershell, als auch in der 64-Bit Powershell laufen lassen, zeigt der Taskmanager 25% CPU-Last an. Das ist ganz schön viel.
Habe noch ein zweites PS-Skript, dass weniger macht, also einfach nur einen anderen Prozess um 23 Uhr beendet. Das braucht auch 25 Prozent CPU-Last.

Wenn ich beide Skripts auf eineer Workstation mit Windows 7 SP1 laufen lasse, dann benötigt das Skript zw. 11-14% CPU-Last.

Der Server ist ein Virtueller Server 2008R2 Standard mit 12 GB RAM und Intel Xeon CPUs E5645. Dem Prozess sind alle 4 CPUs zugeordnet. Habe auch mal versucht andere Prozesse die CPU-Priorisierung zu ändern, hat aber nichts gebracht.

Woran kann das liegen?

Kann man das zweite Skript als Child-Prozess von der ersten Powershell laufen lassn, so dass die CPU-Last zumindest nicht zusammen 50% CPU-Last erzeugt?

Für eine kompetente Hilfe wäre ich dankbar.

Gruß

Thomas

f5f6405726d3c4788dc4d93e88c41465 - Klicke auf das Bild, um es zu vergrößern

Mitglied: Dobby
26.09.2012 um 10:31 Uhr
Hallo Thomas,

da ich keine Programmieren rein gar nichts am Hut habe, aber eben die Antworten falls Du welche bekommst kenne bzw. mir jetzt schon gut vorstellen kann, wäre es denn zu viel für Dich:

- Zu erzählen was der Server denn so alles für Jobs und Services am laufen hat.
- Was das Script denn so macht oder machen soll und zwar genau.
- Einmal unter den FAQ nachschauen wie man Code oder Quellcode hier einstellt und dann das Script einmal zu "posten" damit jemand der einen richtig Plan hat da einmal kurz darüber schauen kann!

Ich wollte Dir nicht zu nahe treten, aber ich denke halt Du erhältst dann mehr Zuspruch!

Gruß
Dobby
Bitte warten ..
Mitglied: thl1966
26.09.2012 um 10:49 Uhr
Hallo Dobby,

der Server überwacht Sequenzierungen, die mit einer Oracle-Datenbank verbunden sind.
Hier laufen permanent Prozesse, die manchmal sehr viel tun (Daten übertragen und auch per Mail benachrichten)

Die CPU-Last ohne sas Powershell Skript variert. So ca. 14-40% (in Spitzenzeiten, meist Vormittags). In einer Halle werden Teile mit Scanner für die Sequenzierung von Autoteilen erfasst und dann am Server registriert und übertragen. Machmal ist der Server sehr langsam und ein bestimmter Prozess, der die Daten entgegennimmt und weiterleitet stürzt dann ab und zu ab (So ca. 2-4 Wochen!).

Ein Druckerspooler-Fenster läuft noch im Hintergrund.

Primär geht es mir darum, warum das gleiche Powershell-Skript auf meiner Workstation nur 12-13% CPU-Last hat (Core i7) und auf dem Server 25-27%.

Wenn ich zwei Skripte laufen habe, ist der Server 50% ausgelastet.

Überlegenswert, wäre die Anzahl der CPUs auf dem Virtuellen Server zu erhähen, so dass die Prozessauslastung besser und verteilter ist (Meine Vermutung!)

Wie kann ich ein zweites Skript als Child-Prozess, dass mit der ersten Powershell-Umgebung ausführen, ohne eine zweite Powershell-Sitzung zu starten?

Vielen Dank für gute Vorschläge.

Hänge noch ein Screenshot vom Taskmanager hier dran.

Thomas
Bitte warten ..
Mitglied: Dobby
26.09.2012 um 11:08 Uhr
Zitat von thl1966:
Hallo Dobby,
Hallo Thomas,

der Server überwacht Sequenzierungen, die mit einer Oracle-Datenbank verbunden sind.
Hier laufen permanent Prozesse, die manchmal sehr viel tun (Daten übertragen und auch per Mail
benachrichten)
Na ja dann läuft da ja einiges ab auf dem Server und hast Du denn schon einmal versucht das Script laufen zu lassen wenn nicht so viel los ist oder besser noch wenn so gut wie gar nichts los ist, wenn es das bei einer Firma mit Autoteilen überhaupt gibt? ;)

Die CPU-Last ohne sas Powershell Skript variert. So ca. 14-40% (in Spitzenzeiten, meist Vormittags). > In einer Halle werden Teile mit Scanner für die Sequenzierung von Autoteilen erfasst und dann am
Server registriert und übertragen. Machmal ist der Server sehr langsam und ein bestimmter Prozess,
der die Daten entgegennimmt und weiterleitet stürzt dann ab und zu ab (So ca.2-4 Wochen!).
Also wenn die Mitarbeiter im gewerblichen Bereich (Lagerbereich) mit den Symbol Scannern so richtig los legen und die auch noch, meistens über Radius, gesichert sind, und der Prozess so oder so schon was zum Abstürzen bringt und dann noch Deine Scripte darauf laufen, naja, mehr RAM oder mehr/stärkere CPU´s würde ich jetzt einmal mutmaßen und/oder ein neuer Server und die Last so wie die Arbeit wird dann eben verteilt!

Ein Druckerspooler-Fenster läuft noch im Hintergrund.
Druckjobs können die Netzwerklast in einigen bestimmten Fällen auch sehr erhöhen!

Primär geht es mir darum, warum das gleiche Powershell-Skript auf meiner Workstation nur 12-13% CPU-
Last hat (Core i7) und auf dem Server 25-27%.
Nun die ackert (arbeitet) ja auch nicht so wie der Server!!

Wenn ich zwei Skripte laufen habe, ist der Server 50% ausgelastet.
Kann man das nicht als Dienst starten und dem dann einfach eine andere Priorität zuweisen?

Überlegenswert, wäre die Anzahl der CPUs auf dem Virtuellen Server zu erhähen, so dass die
Prozessauslastung besser und verteilter ist (Meine Vermutung!)
Und wenn es nicht reicht sogar noch ein bisschen RAM soll ja mitunter richtige Wunder wirken.

Wie kann ich ein zweites Skript als Child-Prozess, dass mit der ersten Powershell-Umgebung ausführen, > ohne eine zweite Powershell-Sitzung zu starten?
Da ich absolut nichts von Programmieren verstehe, enthalte ich mich hier einmal dezent.

Vielen Dank für gute Vorschläge.
Wenn sie richtig sind und helfen gerne!

Hänge noch ein Screenshot vom Taskmanager hier dran.
Wenn Du x% schreibst wird das wohl nicht nötig sein, denn das Du das ablesen kannst glaubt Dir jeder.

Thomas
Gruß
Dobby
Bitte warten ..
Mitglied: AndreasHoster
26.09.2012, aktualisiert um 12:28 Uhr
Dürfte ganz einfach sein:
Dein Skript ist Single Threaded und verbraucht alle Rechenzeit die es kriegen kann.
Da Single Threaded wird nur ein Core ausgelastet.
Server hat 4 virtuelle CPUs, eine wird ausgelastet = 25% (Ein Viertel)

Workstation hat mit i7 und Hyperthreading 8 virtuelle Cores, einer wird ausgelastet = 12,5% (Ein Achtel)

Durch den Scheduler der das wild über die Cores verteilt sieht man das im Taskmanager nicht so genau (es ist also nicht ein Core permanent ganz oben).

Kauf Dir einen grossen Server mit 20 Cores, dann werdens nur noch 5% sein.
Oder das Skript effizienter programmieren.
Bitte warten ..
Mitglied: thl1966
26.09.2012 um 14:54 Uhr
Hallo an alle,

vielen Dank für die Tipps.

Habe das Problem gelöst.

Habe aus den zwei PS-Skript eins gebastelt und den Code optimiert. Hier laufen eine
Endlos-Schleife und die Abfrage wg. Wochentag und für bestimmte Zeiten, wo der Prozess nicht überwacht wird.

Hier hatte ich jeweils die aktuelle Uhrzeit und Datum abgefragt.
Habe dies am Anfang der While-Schile gelegt und aus den Unterabfragen entfernt.

Jetzt braucht das komplette Skript zw. 1 bis 15 Prozent und für ein Bruchteil einer Sekunde manchmal ca. 20%
Damit kann ich leben.

PS: Hier läuft ein ESX-Server, der schon sehr gut ausgestattet ist.
Der Virtuelle Server hat halt eine Zuordnung von 12 GB RAM und 4 Cores.

Der Pysikalische Speicher ist mit max. 50-53 Prozent ausgelastet. Also RAM-Aufrüstung nicht erforderlich.

Gruß

Thomas
Bitte warten ..
Mitglied: thl1966
26.09.2012 um 14:59 Uhr
Hier noch das Ergebnis nach der Optimierung.


Wollte das nicht vorenthalten.

a8e9c6aeb3ca555636ae9267bd9d7422 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Skript zum Messen der CPU-Last für Windows (16)

Frage von DerWoWusste zum Thema Batch & Shell ...

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

Frage von thomasreischer zum Thema Microsoft ...

Windows Server
Powershell Skript funktioniert im Task Scheduler nicht (4)

Frage von winlin zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...