- 27 Aug 2024
- 7 Minutes to read
- Print
- DarkLight
- PDF
Performance Analyse und Tuning für moveIT Produkte
- Updated on 27 Aug 2024
- 7 Minutes to read
- Print
- DarkLight
- PDF
Allgemein gilt zu sagen, dass in moveIT ISS+ unterschiedliche Anforderungen zu unterschiedlichen Zeitpunkten an die Hardware gestellt werden:
Bei einer lokalen Installation
Generell die Geschwindigkeit der Festplatte bei Knotenwechseln, Belegwechseln, Datenbankzugriffe…
Die Single-Core-Geschwindigkeit der CPU beim Konfigurieren, Überrechnen, Formular-Generieren …
Die Anzahl der Kerne ist hier nicht so wichtig, da Progress kein Hyperthreading kann und der prowin.exe Prozess somit immer auf einem Kern ausgeführt wird.
Bei einer Netzwerkinstallation mit Laptops oder Desktops als Clients
Die Geschwindigkeit der Festplatten am Server um schnell auf die Datenbank, Makros und Programmdateien zuzugreifen
Die Geschwindigkeit des Netzwerks zwischen Server und Client um die Dateien und Queries vom Server schnell geliefert zu bekommen bei Knotenwechseln, Belegwechseln, …
Die Single-Core-Geschwindigkeit der CPU am Client beim Konfigurieren, Überrechnen, Formular-Generieren …
Die Anzahl der Kerne ist hier nicht so wichtig, da Progress kein Hyperthreading kann und der prowin.exe Prozess somit immer auf einem Kern ausgeführt wird.
Bei einer Netzwerkinstallation mit Terminalservern als Clients
Die Geschwindigkeit der Festplatten am DB Server um schnell auf Datenbank, Makros und Programmdateien zuzugreifen
Die Geschwindigkeit des Netzwerks zwischen DB Server und Terminalserver um die Dateien und Queries vom Server schnell geliefert zu bekommen bei Knotenwechseln, Belegwechseln, …
Die Single-Core-Geschwindigkeit der CPU am Terminalserver beim Konfigurieren, Überrechnen, Formular-Generieren …
Die Anzahl der Kerne der CPU am Terminalserver ist in dem Fall schon essentiell, da ja auf einem Terminalserver nicht nur ein ISS gestartet wird, sondern mehrere und dadurch das System die Prozesse auf die Kerne verteilt.
Bei einer Netzwerk Clientinstallation
Unterschied zu sonstigen Clientinstallationen ist, die Programmdateien liegen auf der lokalen Platte. Dadurch wird die Festplatte des Servers entlastet (kein Zugriff auf Programmdateien über das Netzwerk) und auch das Netzwerk selbst.
Dafür ist die Geschwindigkeit des lokalen Festplatte wichtiger wie bei einer normalen Clientinstallation.
AntiVir Echtzeitschutz Ausnahmen setzen
Ein sehr relevantes Thema im Bereich Performance Optimierung ist es, die von uns empfohlenen Ausnahmen im AntiVir Echtzeitschutz zu setzen.
Grundsätzlich ersetzt in modernen Windows Betriebssystemen ein 3rd Party AntiViren System den Defender. Trotzdem ist es ratsam, dies nochmal explizit zu prüfen.
Windows Defender Analyse
Für Microsoft Defender gibts in Windows einen eigenen Performance Analyzer. Ist ziemlich praktisch.
DB Parameter
Die Datenbankparameter sollten für einen „normalen“ Kunden wie folgt eingestellt sein. Bei größeren Installationen werden noch die Parameter -Ma X -Mn Y -n XxY eingestellt sein.
Die relevantesten Parameter:
-B
Anzahl der Blöcke im Datenbank Buffer. Je nach zur Verfügung stehendem RAM am DB Server.
Mittels ProTop bzw. ProMon prüfen ob Buffer Hits auf 99% sind (optimal), man sollte so viel verwenden wie man RAM am Server über hat (nicht zu viel, nicht das er zu swapen anfängt), Angabe in Blöcke (wir haben 8k Blöcke in der DB).
Default = 100.000 = ca. 800MB RAM.
Als Minimum wird vom Datenbankhersteller hier 10-15% der DB Größe empfohlen.
-spin
Ist auch für die Performance relevant, wenn es zu einer Vielzahl an Zugriffen kommt und der DB Server über eine halbwegs aktuelle Hardware (CPU) verfügt.
Hier muss man mit den Werten etwas spielen - aber vermutlich ist dabei ein Wert zw. 35000 und 65000 zu empfehlen.
-prefetchDelay -prefetchFactor 100 -prefetchNumRecs 10000
Steuert eine performantere Netzwerkkommunikation von Paketen
VMware
Ein mögliches Problem auf VMware virtualisierten VMs kann sein, dass der Zugriff auf die Computing Ressourcen künstlich limitiert wird. Ein VMware Host sollte niemals im „Energiesparmodus“ betrieben werden.
Ein Anzeichen dafür ist, dass der Core auf dem moveIT ISS+ läuft, beim Überrechnen eines großen Belegs niemals auf 100% CPU hoch schnellt.
Dies kann je (phischem) Server Hersteller, im BIOS angepasst werden bzw. heißt je Hersteller unterschiedlich. (z.B. Dell = System Profile / HP = Power Profile).
Genaue Infos dazu gibt es unter
The effects of power savings mode on vcpc performance
Hyper-V
Ein mögliches Problem auf Microsoft Hyper-V virtualisierten VMs kann sein, dass der Zugriff auf die Computing Ressourcen künstlich limitiert wird. Ein Hyper-V Host sollte niemals im „Energiesparmodus“ betrieben werden.
Ein Anzeichen dafür ist, dass der Core auf dem moveIT ISS+ läuft, beim Überrechnen eines großen Belegs niemals auf 100% CPU hochschnellt.
Dazu ist über den Commandline Befehl powercfg /list zu prüfen, welche Energieoptionen auf dem Server zur Verfügung stehen.
Läuft die Maschine nicht im Höchstleistungsmodus, so sollte dies per powercfg /setactive <GUID für Höchstleistung> geändert werden. Dies sollte immer zuerst mit dem zuständigen IT-Dienstleister besprochen werden.
powercfg /list
powercfg /setactive <GUID Höchstleistung>
Genaue Infos dazu gibt es unter: powercfg performance tuning
RSC am Hyper-V Switch deaktivieren (Server 2019 und neuer)
RSC verringert künstlich die Processing-Leistung des Servers, in dem es nicht jedes Paket einzeln verarbeitet, sondern zu einem großen Paket zusammen sammelt und dieses dann sendet. Dies ist für die Datenbankanforderungen ein großes Problem und verlangsamt moveIT ISS+ extrem.
Set-VMSwitch -Name <vSwitchName> -EnableSoftwareRsc $false
Deaktivieren
Diese Einstellung sollte unbedingt auf der Hostmaschine, im Hypervisor deaktiviert werden und auch in der Gast-Maschine!
Betrieb in Microsoft Azure Cloud
Die Performance von moveIT Produkten in der Azure Cloud ist grundsätzlich abhängig von den verwendeten Virtuellen Maschinen, deren Klassifizierung und deren Ausstattung. Auch hier gelten die Anforderungen, wie ganz oben genannt, an die jeweilige Installationsweise. Darüber hinaus gibt es diverse Möglichkeiten die Performance in Azure zu steigern, sollte diese nicht ausreichen.
Accelerated Networking - Azure Accelerated Networking ist eine Funktion, die die Netzwerkleistung von Azure-VMs verbessern kann, indem sie die Software-basierte Netzwerkvirtualisierung umgeht und den Netzwerkdatenverkehr direkt an die VM weiterleitet. Dies führt zu kürzeren Latenzen, weniger Jitter und geringerer CPU-Auslastung für die Verarbeitung des Netzwerkdatenverkehrs.
Proximity Placement Groups - Azure Proximity Placement Groups sind eine logische Gruppierungsfunktion für Azure Virtual Machines, die verwendet werden kann, um die Netzwerklatenz zwischen den VMs zu verringern. Wenn die VMs innerhalb derselben Proximity Placement Group bereitgestellt werden, sind sie physisch so nah wie möglich beieinander.
Um mögliche Flaschenhälse auszumachen, gibt es einige (Azure) Tools, die verwendet werden können.
Logging Einstellungen prüfen
In moveIT Produkten ist grundsätzlich ein moderates Logging eingestellt. In Analyse-Fällen wird das Logging aber erhöht, damit ein Problem einfacher gefunden werden kann. Dieses erweiterte Logging schränkt aber die Performance des moveIT Produktes ein. Um zu prüfen, ob ein erweitertes Logging aktiviert ist, gehen Sie wie folgt vor:
In der Menüleiste unter [?] > [Programm-Eigenschaften] unter dem Reiter „moveIT ISS+ Log Information“ werden Logging Einstellungen, die Auswirkungen auf die Performance haben, aufgelistet - sollten diese aktiv sein . (Ist keine der Einstellungen Aktiv, existiert der Block moveIT ISS+ Log Information auch nicht.)
moveIT ISS+ Log Information
GeneralISS [ISSLogging] LogLevel 4;
GeneralISS [DefaultPrmSysOptions] Protocol Ja;
GeneralISS [DefaultPrmSysOptions] PrsLog Ja;
GeneralISS [DefaultPrmSysOptions] RunLog Ja;
ConfiguratorSettings [Options] Development Ja;
Diese Einstellung können aus unterschiedlichen Administrationseinstellungen ([Datei] - [Administrationseinstellungen]) kommen und sollten, wenn sie nicht mehr benötigt werden, wieder auf den Standard-Wert zurückgesetzt werden. Im Zweifelsfall wenden Sie sich bitte an den moveIT Support.
Lange Wartezeit nach Login ohne Aktivität
Haben Sie das Problem, dass nach der Eingabe der Login-Daten und Klick auf [Start] es extrem lange dauert, bis der Loading-Dialog „moveIT ISS+ wird gestartet“ angezeigt wird, kann es sein, dass hier eine Kommunikation auf Timeout läuft.
Die von uns verwendeten Libraries WinPDF und TeEdit übertragen Lizenzinformation zu Analysezwecken (anonymisiert) gegen den Elastic Stack WENN scheinbar eine Verbindung dorthin aufgebaut werden kann.
In manchen Umgebungen (meist mit Proxy), ist es so, dass die Adresse grundsätzlich aufgelöst werden kann, aber dann nicht wirklich damit kommuniziert werden darf. Dadurch dauert der Start der Applikation ca.. 45 Sekunden, danach läuft die Anfrage auf Timeout, wenn die Kommunikation nicht funktioniert.
Es gibt zwei Möglichkeiten das Problem zu beheben:
die Kommunikation mit dem Internet bzw. zumindest den Elastic Ressourcen erlauben (Proxy Konfiguration)
schon die Auflösung externer Adressen unterbinden
In beiden Fällen muss die IT des Kunden aktiv werden.
Folgende Adressen sind für die Kommunikation in diesem Fall relevant:
74-208-236-62.elastic-ssl.ui-r.com (HTTP/HTTPS - Ports 80/443 und ggf. 9200 und 9300)
moveIT EASY lange Wartezeit nach Login bzw. bei Konfigurations-Abschluss
In moveIT EASY wirkt sich dieses Problem etwas anders aus:
Der Login ist schnell, wenn keine Position in der Preisauskunft vorhanden ist. Ist das der Fall, so tritt das Problem dann beim Abschluss einer Konfiguration auf, dies dauert dann unnatürlich lange.
Der Login dauert unnatürlich lange, wenn eine Position in der Preisauskunft vorhanden ist
Prozesse / Batchsystem / Service Agents werden nicht beendet bzw. wird nur durch Broker gekillt
Werden moveIT Prozesse über die Aufgabenplanung ausgeführt und dies mit der Einstellung „Unabhängig von Benutzeranmeldung“, so kommt es zu dem Problem, dass dieser prowin.exe Prozess nicht beendet werden kann. ServiceBroker Agents laufen dabei aufgrund des Brokers in eine Timeout, aber es sieht dabei aus, wie wenn der Service sehr lange braucht, bis dieser abgeschlossen werden kann.
Ursache sind hier Treiber Probleme in VMware Tools bzw. in bestimmten VMware Tools Versionen. Die Lösung für dieses Problem ist, die VMware Tools der VM auf Version 11.2.6 oder höher zu heben. Siehe VMware KB Eintrag zu diesem Problem.
Offlineeinstellungen
Es kann vorkommen, das User sich gerne Netzlaufwerke offline verfügbar machen, damit die Daten auf der lokalen Festplatte des Client gespeichert werden. Das ist im Falle von moveIT ISS grundsätzlich nicht sinnvoll und kostet auch zusätzlich Performance.
Dieser Fall kommt selten vor, kann aber bereits durch die IT in der Freigabe für die moveIT ISS+ Netzwerkinstallation am DB Server unterbunden werden: