Autor Thema: Agent Performance  (Gelesen 10627 mal)

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Agent Performance
« am: 05.03.14 - 09:44:43 »
Hallo zusammen,

in einer unserer Anwendungen haben wir tonnenweise Logik in Form von Lotus Script Bibliotheken. Da wir für der Xpage nicht alles neu programmieren wollen, nutzen wir an einigen Stellen (SSJS) NotesAgent.runWithDocumentContext(). Die Agenten ziehen ein paar LS Bibliotheken mit einer Gesamtgröße von rund 2 MB an. Die Laufzeit dieser Agenten ist teilweise ungewöhnlich lange.

Selbst ein Agent der nur die o.g. Bibliotheken zieht und selbst absolut nichts tut (auch in den Bibliotheken wird nichts ausgeführt, nur deklariert), braucht 500ms. Aber jetzt kommts: Rufe ich ein "load compact -c database.nsf" und anschließend ein "tell http restart" bekomme ich angenehme Laufzeiten von 30ms. Später / am nächsten Tag liegen die Laufzeiten wieder bei 500ms. Erneutes compact und http restart ---> 30ms

Kennt jemand dieses Verhalten und weiss ggf. Abhilfe?

Zum Nachvollziehen und um ggf. einen PMR zu öffnen habe ich das Ganze in einer leeren DB nachgebaut. Hier erhielt ich nur kurzzeitig und zwischendurch die schlechten Laufzeiten. Aktuell habe ich jedoch durchgehend 30ms  :-:. Wer es mal ausprobieren möchte muss nur die test.xsp aufrufen. Dort werden auf verschiedene Arten drei Agenten mit unterschiedlich großen Scripbtbibliotheken aufgerufen.

Ich suche gerade noch nach einer Möglichkeit diesen Effekt reproduzierbar "ein- und auszuschalten". Jedenfalls ist das ganz schön lästig  >:(

Übrigens1: Beim ersten Aufruf der Testseite dauert es immer etwas länger...
Übrigens2: Getestet haben wir die Serverversionen 8.5.3 + diverse Fixpacks und 9.0

Viele Grüße

Tim

PS: Thread Titel geändert "Web Agent Performance" --> "Agent Performance". Nachdem es nicht nur die Xpage betrifft.
« Letzte Änderung: 06.03.14 - 10:20:27 von Tim Pistor »

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Web Agent Performance
« Antwort #1 am: 05.03.14 - 16:52:08 »
Auf jeden Fall PMRen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Web Agent Performance
« Antwort #2 am: 05.03.14 - 20:42:00 »
Gerade auf meinem lokalen dev Server abgelegt,

hier erhalte ich "normale" Antwortzeiten < 40ms
(bis auf den ersten Aufruf, hier waren es 300ms)

Allerdings ist sowas zu PMRen schwierig, wenn man kein klar repoduzierbares Problem hat :(

Muss der Compact sein, oder reicht hier ein Serverrestart? (Wenn ja, kannst ja anstatt des Compact mal eine Kopie machen und beide DBs an IBM schicken. Beide DBs sind dann identisch und eine davon ist langsam)

Oder kann es sein, dass dein server zu swappen beginnt?


Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Re: Web Agent Performance
« Antwort #3 am: 06.03.14 - 08:46:57 »
Allerdings ist sowas zu PMRen schwierig, wenn man kein klar repoduzierbares Problem hat :(

Muss der Compact sein, oder reicht hier ein Serverrestart? (Wenn ja, kannst ja anstatt des Compact mal eine Kopie machen und beide DBs an IBM schicken. Beide DBs sind dann identisch und eine davon ist langsam)

Der Compact muss sein, ebenso der HTTP restart. Es geht auch, eine neue Kopie der Anwendung anzulegen (was ja dem copy-style-compact recht nah kommt). Die "alte" ist dann noch langsam die neue ist recht flott. Als nächstes werde ich meine Test-DB mal mit 30k Dokumenten füllen. 10k werden dann permanent und 10k "weich" gelöscht. Evtl. geht es ja in diese Richtung...

Schonmal Danke für's Testen!

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Re: Agent Performance
« Antwort #4 am: 06.03.14 - 10:19:01 »
Neue Erkenntnisse:

Es hat Grundsätzlich nichts mit XPage zu tun! Die schlechten Laufzeiten treten auch anderweitig auf:

- via Notes Client: Den Agent per RunonServer starten: langsam
- via Web: Url db.nsf/agent_name?RunAgent: langsam

Nach einem Compact: alles schnell

==> Sollten wir den Thread in die Kategorie "Administration" schieben?
« Letzte Änderung: 06.03.14 - 10:21:20 von Tim Pistor »

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Agent Performance
« Antwort #5 am: 06.03.14 - 10:41:15 »
Ein Agent protokolliert ja irgendwo seine letzte Laufzeit.
Dies ist eine Art Attachment (data object), welches am Agenten hängt.
(soweit ich weiß macht er dies aber nur für geplante Agenten)

Könnte es sein, dass dir DAOS oder deine ODS Version einen Streich spielt.

Du schreibst, dass es "am nächsten Tag" immer langsam ist. Laufen nachts irgendwelche Tasks?
Da wir auch viele Agenten über Web-URL aufrufen, hier aber bisher keine Performanceeinbrüche fest stellen konnten, ist dies vermutlich ein Konfigurationsproblem von deinem Server.


Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Re: Agent Performance
« Antwort #6 am: 06.03.14 - 10:55:25 »
Hallo Roland,

es hängt wohl auch stark mit der Größe der genutzten Scriptbiliotheken zusammen. Meine erste Vermutung ging dahin, dass er ggf. immer wieder vor dem Ausführen neu kompiliert oder sowas. Interessant ist auch das die Zeit verloren geht bevor der Agent auch nur die erste Zeile Code ausführt.

Ich habe jetzt mal das ganze ins Monitoring eingebunden. Alle 60 Sekunden wird der Agent (via HTTP) gestartet und die Laufzeit geloggt. Evtl. kommen wir dem Übeltäter damit auf die Spur.

Viele Grüße

Tim

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz