Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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 - 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, 3547 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Snapshot mit Powershell-Skript (3)

Frage von Holywarrior1 zum Thema Batch & Shell ...

Windows Server
gelöst Osk.exe bringt CPU auf 60 Prozent (1)

Frage von petermayer37 zum Thema Windows Server ...

Windows Server
Windows Server 2012R2 - CPU Last sehr hoch (5)

Frage von niklasschaefer zum Thema Windows Server ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Batch & Shell
Batch Programm verhalten bei shoutdown -p (18)

Frage von Michael-ITler zum Thema Batch & Shell ...

Router & Routing
Freigabe aus anderem Netz nicht erreichbar (15)

Frage von McLion zum Thema Router & Routing ...

Festplatten, SSD, Raid
Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (13)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...