Performance Problem Navision 3.7 auf Citrix-Servern

22. November 2007 10:55

Hallo zusammen,
wir sind jetzt schon seit fast 2 Jahren auf der Suche nach der schlechten Performance von Navision 3.7 und nun versuche ich es hier mal.

Infrastruktur in unserem Haus:
- Navision 3.7b auf native DB (3.7b seit ca. 1 Jahr davor 3.7a)
- DBMS Cache 1GB
- ObjektCache 8MB
- CommitCache aktiv
- DB Größe 12GB belegt 61%

- 4 Citrix / Terminalserver (Win2kServer SP4) 60 User
- Intel Xeon 2.13 GHz
- 4GB Ram
- SATA-Platten

Wir haben für die User auf den Citrix Servern den Desktop veröffentlicht.
Dort nutzen sie ihr Outlook, ein Intranet und Navision 3.7b.
Auf den Citrixservern kommt es nun zu diesem effekt, dass sich Navision über mehrere Sekunden aufhängt ("keine Rückmeldung" im Task-Manager) und sich dann mit der Meldung "Sofort beenden" meldet.Aus der Nummer kommen wir dann auch nicht mehr raus und man muss Navision dann schließen und wieder neu starten. Ist ja nicht im sinne des Erfinders und Kollegen platzen bald.

Hat jemand diesen Effekt schon mal gehabt und weiß eventuell auch woran es liegen könnte?

Wir haben eine Erklärung dafür, aber wir wissen nicht wie das zustande kommt.Und zwar legt Navision in dem User-Profil unter "Lokale Einstellungen" auf dem Citrix-Server 3 Temp Dateien an.Die Namen konnten wir im ProcessMontor erst herrausfinden.

Temp Dateien im User Profil auf den Citrix-Servern:

- LokaleEinstellungen \Temp\85\__Temp__.A9F
- LokaleEinstellungen \Temp\75\__Temp__.KBK
- LokaleEinstellungen \Temp\75\__Temp__.BLQ

Diese Dateien verursachen eine enorme Schreibaktion auf dem Server und die Warteschlange vom Datenträger kommt nicht mehr nach.
Warum und wofür werden diese Dateien angelegt ???

Eine Sache habe ich doch noch.
Wir haben vor einem Jahr ein Update von 3.7a auf 3.7b gemacht,seit dem ging es Berg ab mit dem Programm.
Kann mir irgendwer eventuell sagen, was sich bei diesem Versionwechsel im Navision ändert?Bisher konnte mir nicht mal unser Systemhaus diese Frage beantworten, es hieß dann immer zurück können wir sowieso nicht mehr!Tolle Antwort.
Wir benötigten das Update wegen dem Appliacation Server um eine E-Mail Protokollierung zu realisieren.

Ich hoffe, das ich hier ein paar Antworten auf diese vielen Fragen bekommen werde.
Ich bedanke mich schon mal im vorraus.

22. November 2007 12:20

Temp Dateien im User Profil auf den Citrix-Servern:

- LokaleEinstellungen \Temp\85\__Temp__.A9F
- LokaleEinstellungen \Temp\75\__Temp__.KBK
- LokaleEinstellungen \Temp\75\__Temp__.BLQ

Diese Dateien verursachen eine enorme Schreibaktion auf dem Server und die Warteschlange vom Datenträger kommt nicht mehr nach.
Warum und wofür werden diese Dateien angelegt ???


Diese Dateien legt der NAV-Client bei der Verwendung von temporären Tabellen an. Welches Modul oder Programm in Navision verursacht das denn oder tritt das ganze generell auf?

Der Speicherort der temp. Dateien kann übrigens geändert werden:
Extras -> Optionen -> TempFilePath

22. November 2007 14:00

Wir nutzen das CRM + Cargo Modul von Navision.
Das Cargo-Modul wird von der Firma SNC-Sievers programmiert, betreut und vertrieben.

Ich habe bei uns mal in die Einstellung für den Temp-Pfad geschaut.
Es ist dort nur angegeben: C:\Temp\
Wundert mich also schon warum er die Temp-Datei ins Profil des User´s schreibt.

Steuert Navision das anlegen der temporären Tabellen oder ist das ein Aufruf vom Programm, also durch die Programmierung?

Ganz blöde Frage, wofür sind die temporären Tabellen eigentlich da?

Kann man sie abschalten?

22. November 2007 15:23

Servus Lars,

bitte nicht Temp-Dateien welche am Laufwerk gepseichert werden und temporäre Tabellen welche in der Datenbank verwendet werden miteinander verwechseln.

Temporäre Tabellen werden in der Datenbank verwendet und können bei geschickter Programmierung Performanceoptimierung bewirken.

Weshalb der Hersteller von dem Modul temporär Files auf der Platte ablegt kann ich dir leider auch nicht sagen. Entweder den Code anschauen oder beim Hersteller nachfragen. Jedoch sollten die Zugriffe auf ein Tempfile nichts in Buchungsroutinen oder in anderen performancekritischen Routinen zu suchen haben.

22. November 2007 16:32

Hallo Juergen,
erstmal vielen Dank für deine Antwort.

Der Hauptbereich der Disponenten im Navision nennt sich "Planbuch" bei uns. (60 User zeitgleicher Zugriff) Von dort aus können sie alles sehen und alles erreichen das heißt es werden sehr viele Daten vorgehalten! Würdest du das als nicht sinnvoll betrachten dort mit temporären Tabellen zu arbeiten!? Weil jeder damit arbeitet!?

Was stehen denn für Daten in den temporären Tabellen?
(denke mal, dass kann man nicht pauschal sagen)
Ich vermute mal:
Es ist ein schreibender Vorgang auf der Platte (DiskWrite), also müssen es ja eigentlich Änderungen vom User sein, die dort zwischengespeichert werden und danach in die Datenbank geschubst werden!?

31. März 2008 17:08

Hallo Godix,

der Beitrag ist ja nun schon ein paar Tage alt, aber vielleicht hast Du ja eine Lösung für dieses Prob gefunden und könntest diese posten, denn wir haben das gleiche Problem bei uns im Haus.

Gruß

Ypsilon

31. März 2008 17:34

Hi Ypsilon,

das ist gar nicht so "unpfiffig" mal nachzufragen ob wir das Problem gelöst haben, denn wir haben es gelöst!
Wir haben ein Programm genutzt wo wir gezielt nachschauen können was an Prozessen passiert wenn wir verschiedene Brereiche im Navision aufrufen.Das Tool heißt "ProcessMonitor"(PM) ist Freeware und du kannst den Focus nur auf Navision setzen.
Auf jedenfall haben wir dadurch bemerkt das wenn wir einen Bereich (bei uns Cargo / Planbuch) im Navision aufrufen ca. 25.000 DISKREAD Einträge im PM auftauchen.Die DISKREAD-Przesse greifen auf die temporären Tabellen zu, die in jedem Userprofil-Pfad angelegt werden. Da es sich bei uns um Terminalserver handelt und ca. 10 Leute zu dieser Zeit gleichzeitig gearbeitet haben, sind es 25.000 x 10 = 250.000 DISKREAD Prozesse und da unser sogenanntes Planbuch jede Minute aktuallisiert wird, passiert das auch jede Minute.
Also für die Performance Probleme sind die Lesezugriffe auf die Festplatte schuld gewesen!!!! Die HD kam einfach nicht nach !!!
Wir haben dann von unserem Systemhaus das Planbuch umprogrammieren lassen, so das nicht jeder User alle Daten hat, sondern erst dann weitere Daten bekommt wenn er sie durch Auswahl benötigt.Wir haben dadurch die DiskRead-Przesse auf 800 pro User reduziert!
Es ist wirklich ein großer Erfolg gewesen, nun können auch locker 20 und mehr User auf einem Unserer Terminalserver arbeiten.


Hoffe es hat dir weitergeholfen !?
Vielleicht gibst du noch mal einen kleinen Status durch.

Gruß godix

31. März 2008 17:50

Hi Godix,

vielen Dank für die schnelle Antwort. Wir setzen bei uns ein Tool ein, das die Datensätze von Navision ins Archiv druckt und hier hatte ich schon immer das Gefühl, das die Platte sich verkotzt wenn zu viele Datensätze gedruckt werden (man entschuldige die Wortwahl ;-) )

Werds testen und dann das Ergebnis posten.

Danke & Gruß

Ypsioon

2. April 2008 15:46

Hallo,

du schreibst, daß die Clients als Temp-Pfad im Nav-Client c:\temp
eingestellt haben.

Ist C:\ nun die lokale Platte vom Client oder vom Citrix-Server.

Normalerweise wird beim Citrix-Server die Laufwerke umgebogen, sodaß
das Serverlaufwerk z. B. L:\ ist. So kann sich der Citrix das Client LW C:
auf sein Server LW C:\ mappen.

Wenn also bei dir C:\ das Client-Laufwerk ist, dann bitte den Pfad umstellen, damit der Temp-Pfad auf den Laufwerksbuchstaben vom Server zeigt.

Dann sollte das ganze performance-technisch wesentlich besser werden.

Gruß
Hans

3. April 2008 16:17

Hallo Hans,
die User arbeiten auf dem Server und dort liegt dann auf C:\... das Profil mit den Temp Dateien.Also auf dem Server-Laufwerk.
Auf die lokale Ebene greifen wir nicht zu.
Würde keinen Sinn bei uns machen, da wir bundesweite Standorte haben und sonst sämtliche Daten übers Netz schicken müssten.
Denke mal, dass war deine Vermutung.

Danke für deine Antwort

Gruß
godix

4. April 2008 11:06

Ja, richtig.

Genau das war meine Vermutung.

gruß
Hans