4Dv14 Upgrade auf 4Dv17 und VM

Hallo,

über die Feiertag habe ich eine 20 Jahre alte 4D DB eines Kunden für das 4Dv17 Upgrade vorbereitet.
Die “alte” 4D DB wurde mit der Version 6.5 beim Kunden eingeführt und über die Jahre auf Version 2003 und dann auf 4D v13 geupgradet.

Leider ist die Entwicklungsabteilung nicht sonderlich “4D-freundlich” und legt ihren Schwerpunkt auf Officeline (SAGE) und Eigenentwicklungen auf Windows und SQL Basis.
Für passende moderne Hardware muss ich viel überzeugungsarbeit leisten.

Nun ist es soweit, daß ich endlich auf die 4Dv17 umsteigen kann.

4Dv13 Struktur mit Daten mit Primary Key versehen, prüfen und kompilieren klappte im überschaubaren Rahmen.
Diese Struktur mit Daten auf die v17 konvertieren und kompilieren und alles läuft wie erwartet. Sehr erfeulich !

Vielen Dank an 4D.

Jetzt noch ein paar Prüfungen auf den Testumgebunden mit MacMinis (Late 2014 mit 8-16 GB und SSD bzw. Fusiondrive)

Die DB hat 5 Haupt-Tabellen mit mehreren 100.000 Datensätzen.
Struktur hat 80 MB und Data 8 GB mit 2 GB Index.

Im Serverbetrieb sind 15 Clients angemeldet und die DB wird durch SQL-Satements von aussen gefüllt.

-> Es gibt eine Berechnung (besteht aus rund 20 aufwändigen ServerProzeduren) die dauert 500 bis 600 Sekunden.
Das wäre für den Produktivbetrieb mehr als ausreichend.

aber:

Wenn ich diese Umgebung auf dem Produktivsystem teste (Windows 2016 Server mit 32 GB ) dann wird es langsam.
Aus den 600 Sekunden werden es dann leicht 1200 bis 1800 Sekunden, und das wird von den Anwendern bemerkt.

Der Admin kann mir nicht helfen , da es nach seinen Angaben um eine sehr schnelle Hardware handelt.
Selbstverständlich ist dieses Sytem virtualisiert.

O-Ton:"Ich würde eine neue virtuelle Maschine auf Basis von Windows Server 2016 mit 2 x 3 Ghz,

  • 500 GB SSD + 32 GB Ram + 10 GBIT Netzwerkanbindung bereitstellen. Das ist schnell genug!"

Mit VM habe ich kaum Erfahrung, und bin jetzt natürlich enttäuscht.
Gerne würde ich dem Anwender nach dem Umstieg auf v17 eine bessere Performance präsentieren.
So kann ich nurn sagen :" Auf allen MacOS-Systemen läuft es doppelt so schnell."

Gibt es noch weitere Einstellungsmöglichkeiten beim 4Dv17 Server (z.B. Cache).

Grüsse und Danke für Tips

Stefan Schäfer

[]30134827;“Speichereinstellung 4Dv17:”[/]

[]30134808;“Der Windows Server:”[/]

Hallo Herr Schäfer,

das sind die üblichen Spielchen.

: Stephan SCHAEFER

O-Ton:"Ich würde eine neue virtuelle Maschine auf Basis von Windows
Server 2016 mit 2 x 3 Ghz,

  • 500 GB SSD + 32 GB Ram + 10 GBIT Netzwerkanbindung bereitstellen.
    Das ist schnell genug!"

MacMinis mitnehmen (nur die mit SSD, Fusion-Drive ist Bääh!) und dem Kunden zeigen, dass die alte Mac-Hardware seinen Super-Duper-Server abhängt. Guter alter Augenscheinsbeweis.

VMware kann tricky sein. Da würde ich erstmal mit den Standardeinstellungen anfangen, oft führt “mehr” zu “langsam”. Dann einen Client auf dem Server starten und dort testen. Dann von einem echten Client aus.

Virtualisierung an sich schadet nicht.

Wenn ein Rechner mit 8 Kernen einen Rechner mit 7 Kernen virtualisiert bekommen Sie (richtig gemacht) 100% Performance (halt 7 statt 8 Kerne).

Wenn ein Rechner mit 8 Kernen zwei Rechner mit je 8 Kernen virtualisiert (was man recht häufig sieht), bekommen Sie 50% Performance.

Man macht das, weil man davon ausgeht, der Rechner steht eh nur rum und tut nichts.
Das ist ja der Trick der Cloud. Man verkauft mehr als man hat - und die Differenz ist der Profit.
Ich kenne einen Kunden der 100 4D Server auf einem Rechner laufen lässt und die als Cloud-Zugang vermietet.
Solange nicht alle gleichzeitig voll arbeiten merkt keiner was.

Wenn Sie nun schauen wollen, was Sie wirklich haben können Sie entweder mit dem Admin zusammenarbeiten oder gegen ihn.
Mit: er protokolliert was alles auf dem Rechner läuft und dokumentiert das. Dann braucht man sich nur die Werte anzuschauen.

Dagegen: Sie benötigen Admin-Zugang zu der virtuellen Maschine. Je nach Unternehmen, Montag Morgen oder an einem anderen stark belasteten Tag fahren Sie Benchmarks auf dem Rechner.
Einmal CPU Tests, dann Festplatten-Tests. Je 60 Minuten.
Wenn die anderen anfangen zu schreien: Überlastung.
Zumindest bekommen Sie Leistungsdaten unter Last.

Dazu gibt es eine ganze Reihe Standard-Tools mit GUI.
Mitgeliefert, aber ohne Interface:

Über powershell oder Ausführen:
Achtung, geht nicht über Remote Desktop, muss lokal erfolgen.

winsat formal

Ergebnis in Ordner:
C:\Windows\Performance\WinSAT\DataStore
In Datei Formal.Assessment (Recent).WinSAT.xml
Sind die Scores

Alternativ bei Remote-Zugang:
Nur festplattentest geht mit:
winsat disk -drive g:

winsat cpuformal
winsat memformal

Die Werte sollten Sie auf einem 1000 Euro Rechner zum Vergleich ausführen. Kann Windows 10 sein.
Dann können Sie sagen: der bereitgestellte Rechner bringt 20% oder 30% eines 1000 Euro Rechners.

Ich hatte mal einen ähnlichen Fall, CPU war schnell, Festplatte war mit 150 IOPS auf dem Niveau einer billigen Platte der 90er. Den Admin konnte man nur mit Leistungsdaten zum Überprüfen (und Korrigieren) bringen.

Hallo Herr Maul,

: Thomas MAUL

Wenn Sie nun schauen wollen, was Sie wirklich haben können Sie
entweder mit dem Admin zusammenarbeiten oder gegen ihn.
Mit: er protokolliert was alles auf dem Rechner läuft und
dokumentiert das. Dann braucht man sich nur die Werte anzuschauen.

Ich hatte noch auf dem alten Windows Server beim Kunden (16 GB mit Windows 2012) einen massiven Leistungseinbruch, und Korrespondenz mit dem Admin (auch wegen RAID 5).

O-Ton

Hallo Stefan,

Leider muss ich dir bei deinen Vermutung komplett widersprechen.

Es handelt sich bei dem 4D Server um eine virtuelle Maschine welche in einem VMWare
Cluster (5 verschiedenen Servern) läuft, daher gibt es keine reale Hardware.

1 Server aus 2012, 2 Server aus 2014, 1 Server 2017 und 1 Server 2018.

Die virtuellen Festplatten liegen auf einem 16 GBIT Fibre Channel Datacore Storage , welches aus 6 TB
SSD’s besteht, 4 TB MVME RAM und 11 TB SAS HDD besteht. Es handelt sich dabei um ein RAID 5 auf einem Storage Knoten welcher noch auf einem weiteren Knoten repliziert wird.

Dies ist eins der schnellsten Storage Systeme überhaupt. Nach Kontrolle habe ich das System auf permanent auf das SSD System gelegt, vorher wurden nur die aktuellen Daten im SSD System gehalten.

Nach Kontrolle des VMWare Monitoring kann man folgendes sehen:

  • CPU Auslastung sehr gering -> kein CPU Problem
  • RAM Auslastung seit 21.05 sehr hoch -> 32 RAM Erweiterung kein Problem
  • Festplatten Latenz im letzten Monat vom 11.06 an sehr hoch
  • Netzwerk-Auslastung sehr gering. -> sehr gering

[]30143371;“Your comment here…”[/]

Nach einem 4DServer Neustart hat sich das Problem (massiver Leistungseinbruch) gelöst.
Auch ist dieser “alte” Windows-Server kaum langsamer wie der neue.

Das eigentliche Problem bleibt:

Ein 1000 Euro Rechner (auf Win 10 werde ich noch testen) ist 2 bis 3 mal schneller wie das Bereitgestellte System :-((

Grüsse

Stefan Schäfer

Hallo Herr Schumacher,

: Peter SCHUMACHER

VMware kann tricky sein. Da würde ich erstmal mit den
Standardeinstellungen anfangen, oft führt “mehr” zu “langsam”. Dann
einen Client auf dem Server starten und dort testen. Dann von einem
echten Client aus.

das teste ich sogleich.

Grüsse und Danke

Stefan Schäfer

Hallo Herr Maul,

: Thomas MAUL

Virtualisierung an sich schadet nicht.
…Wenn Sie nun schauen wollen, was Sie wirklich haben können Sie
entweder mit dem Admin zusammenarbeiten oder gegen ihn.
Mit: er protokolliert was alles auf dem Rechner läuft und
dokumentiert das. Dann braucht man sich nur die Werte anzuschauen.

Dagegen: Sie benötigen Admin-Zugang zu der virtuellen Maschine. Je
nach Unternehmen, Montag Morgen oder an einem anderen stark
belasteten Tag fahren Sie Benchmarks auf dem Rechner.
Einmal CPU Tests, dann Festplatten-Tests. Je 60 Minuten.
Wenn die anderen anfangen zu schreien: Überlastung.
Zumindest bekommen Sie Leistungsdaten unter Last.

Inzwischen habe ich eine Auswertung des Admin.

Die schlechteren Werte werden mit einer schlechteren CPU-Auslastung erklärt.

Unter 4Dv13 konnte man die CPU-Priorität noch einstellen (war für den 4D Server auf Maximum)
Bei 4Dv17 gibt es das ja nicht mehr.

[]31160482;“Your comment here…”[/]

Hier die Antwort des Admins:

“Hier CPU Auslastung der beiden Systeme über 24 Stunden. Auffällig, die CPU Last geht nicht über 50 % bei dem neuen Server”:

[]31160494;“Your comment here…”[/]

“Die CPU Auslastung auf dem alten System ist deutlich besser”:

[]31160500;“Your comment here…”[/]

Wie kann ich eine bessere CPU-Auslastung beeinflussen ?

Grüsse und Danke

Stefan Schäfer

Hallo Herr Schäfer,

da Herr Maul im Urlaub ist, will ich hier mal antworten.

Wie Sie bislang auch von Kollegen gehört haben: “VMware kann tricky sein. Da würde ich erstmal mit den Standardeinstellungen anfangen, oft führt “mehr” zu “langsam”.”

Ich selbst bin kein VM-Spezialist. Aber die Grafiken scheinen mit zu zeigen, daß die CPU sich langweilt. Vielleicht erzeugt ja 4D Server auch nicht mehr Last? Ich habe die Lösung nicht programmiert. Aber theoretisch wäre es möglich, daß die Abläufe mit DELAY PROCESS verlangsamt werden, damit sich die Prozesse im kooperativen Multi-Tasking immer ausreichend Rechenzeit für einen Code geben? Aber das kann ich über Ferndiagnose ohne weitere Info schlecht sagen.

Mir ist dann aber noch folgendes aufgefallen: “Nach einem 4DServer Neustart hat sich das Problem (massiver Leistungseinbruch) gelöst. Auch ist dieser “alte” Windows-Server kaum langsamer wie der neue. Das eigentliche Problem bleibt: Ein 1000 Euro Rechner (auf Win 10 werde ich noch testen) ist 2 bis 3 mal schneller wie das Bereitgestellte System”

Nach diesen Feststellungen, wenn ein 1.000 EUR Rechner 2 - 3 mal schneller als das VM-System ist, kann es doch eigentlich nur an der Konfiguration oder den Kompoenten liegen.

Mir würden hier noch die erbetenen Festplattentests fehlen. Herr Maul hatte das genauer spezifiziert. Vielleicht würden ja auch die Logs der Info-Report Komponente helfen. Oder, da stored procedures, sicher auch das Debug-Log im asynchronen Modus. Wir haben ja keine Crashes, wir wollen sehen, wo die Zeit bleibt.

Hallo Her Peschke,

Danke für die Antwort, und just in diesem Augenblick habe ich mit dem Admin das Problem ausmerzen können.

Natürlich hatte Her Maul (und auch Sie) wieder Recht, und die Zusammenarbeit mit dem Admin ist wichtig, wenn produktiv und zeitnah.

Ich habe am Ende aller Tests bei 4D alles auf Standardeinstellung gestellt, und es wurde im neuen “schnellen” System noch langsamer. :cry:

Kein Diagnose-Tool des Admins zeigte Auffälligkeiten (CPU oder SSD), der schnellere alte Server zeigte sogar langsamere E/A auf die SSD.

Letztendlich wurde festgestellt, dass sich der 4D Server mit einer Lese/Schreibintensive Umgebung die Machine teilte.

Der 4D Server wurde “separiert” und läuft jetzt erwartet schnell
…und nach der Konvertierung von 4Dv13 auf 4Dv17 noch schneller. :mrgreen:

Danke an 4D und alle Admins, die auch bei ungewohnte DBs mitarbeiten.

Grüsse

Stefan Schäfer

fein Herr Schäfer,

danke für das Feedback.