Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: oson00 am 23.10.08 - 10:03:45

Titel: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 23.10.08 - 10:03:45
Hallo,

ich habe jetzt schon das zweite Mal das störende Phänomen, dass ein LotusScript Agent unnötig viel Speicher verbraucht und wenn dieser fertig mit der Verarbeitung ist, den Speicher auch nicht freigibt.

Beide Agenten verarbeiten viele Dokumente. Sie laufen in der Regel sehr lange, weil sie für die einzelnen Dokumente Ausgabe-Dateien erstellen.

Dass die den Speicher verbrauchen, stört mich nicht, aber dass der Speicher nach dem Lauf (10-30 Minuten) nicht wieder freigegeben wird, ist nicht schön.

Das Problem tritt sowohl lokal als auch bei einem periodischen Agentenlauf auf.

Kennt jemand das Problem?
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: Glombi am 23.10.08 - 10:36:00
Üblicherweise iteriert man so:

set dc = .... 'NotesDocumentCollection bauen...

set doc = dc.GetFirstDocument
do while not (doc is nothing)
....

set doc = dc.GetNextDocument(doc)
loop


Ich kann mich an einen Vortrag erinnern (ich glaube es war der von Alan Lepowski auf der ILUG2007), wo gesagt wurde, dass dieses evtl. zu einem Speicherproblem führen kann, da jeweils für jedes doc in der Schleife eine neue Instanz angelegt wird.

Also kannst Du mal folgendes machen:
dim doc as NotesDocument
dim nextdoc as NotesDocument

set dc = .... 'NotesDocumentCollection bauen...

set doc = dc.GetFirstDocument
do while not (doc is nothing)
set nextdoc = dc.GetNextDocument(doc)
....
Delete doc
set doc = nextdoc
loop


Mit dem Delete wird der Speicher sofort aufgeräumt.

Andreas
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 23.10.08 - 10:46:06
Oh... Ich habe diverse Delete schon eingebaut. Klar! Aber DA drauf bin ich noch nicht gekommen.

Es würde aber passen. Ich probiere es aus und gebe das Ergebnis bekannt.

Sowas muss man ja wissen, dass der das Objekt nicht einfach wegwirft! Sowas!
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 23.10.08 - 12:57:32
Hm, also in einem Test konnte ich das gut nachstellen, dass es dort ein Problem gibt, aber in meinem Agenten hilft das noch nicht vollständig.

Entweder habe ich noch etwas übersehen oder es liegt noch an etwas anderem. Der Tipp war auf jeden Fall schonmal goldwert. Danke!!
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 23.10.08 - 17:07:12
Ich muss doch widersprechen.

Ich habe anfangs gedacht, dass ich damit was in den Griff bekomme. Aber das ist nicht das Problem. Ich habe das Ganze mal mit einem Test-Agenten nachgespielt. Hierbei wird doch kein Speicher wieder freigegeben bzw. wenn man kein Delete benutzt, wird auch die Instanz nicht weiter im Speicher vorgehalten.

Hat sonst noch jemand eine Idee?
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 24.10.08 - 11:21:27
Hat sonst jemand eine Idee wie man memory leaks auf die Schliche kommen kann?
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 28.10.08 - 13:11:44
So ich habe etwas neuer herausbekommen. Langsam glaube ich nicht, dass es an meinem Agenten liegt.

Der Server läuft mit einer sichtbaren Server-Konsole! Sobald ein Agent läuft. Schluckt die nserver.exe und namgr.exe immer mehr Speicher. Sobald ich die Konsolo minimiere, laufen diese beiden Prozesse mit geringerem Speicherverbrauch. Die passiert auch bei minimierter Konsole. Sobald ich diese anzeigen lasse und wieder minimieren, wird hier wieder am Prozess der Speicher freigegeben. Die Auslagerungsdatei bleibt allerdings sehr hoch.

Ist dieses Verhalten normal beim Server? Auf dem Server läuft ein Norton Antivirus, diverse Group-Server-Tasks. Fernzugriff erfolgt durch UltraVNC.
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: eknori am 28.10.08 - 13:20:37
Zitat
Auf dem Server läuft ein Norton Antivirus, diverse Group-Server-Tasks. Fernzugriff erfolgt durch UltraVNC.
IBM Support würde in so einem Fall schreiben: Deakltivieren Sie alle Produkte von Drittanwendern, um auszuschliessen, daß der Fehler durch diese Programme hervorgerufen wird.
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 28.10.08 - 13:29:06
Ein normales Verhalten der Domino Server Konsole ist das aber nicht?
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: eknori am 28.10.08 - 13:31:45
Ich habe das mal zu 4.x zeiten irgendwo gelesen, daß man zur Performancesteigerung die Console immer minimiert halten soll. ... Ob das heute noch gilt ...
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 28.10.08 - 13:41:27
OK, danke. Die einzelnen anderen Programme werden wir hier nach und nach mal deaktivieren. Kann ich nur nicht einfach so machen!
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: Ralf_M_Petter am 28.10.08 - 16:00:11
Wie misst du den Speicherverbrauch?

Meine Frage bezieht sich darauf, ob du überhaupt den richtigen Wert anschaust, der den speicherbedarf des Prozesses anzeigt.

Grüße

Ralf
Titel: Re: Hoher Speicherverbrauch bei LotusScript-Agenten
Beitrag von: oson00 am 29.10.08 - 09:36:59
Ich habe mir die Größe der Auslagerungsdatei angesehen, aber auch den Speicherverbrauch der einzelnen Tasks. Bei maximierter Server-Konsole steigt der Speicherverbrauch der Prozesse nserver.exe und namgr.exe immer weiter an. Ich schau mir das jeweils im Taskmanager an.