[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.114

    Mal wieder Performance

    Hallo *all,
    in unserem Warenwirtschaftssystem können wir div. Listen im Batch abrufen. Ich sehe den Job auch fröhlich im Qbatch mit so 1,0 bis 1,2% CPU. Während des laufs macht er ca. 2443 Aux-IOs innerhalb von 10 Sekunden. Der ganze Job läuft über eine Stunde!!
    Bei den angezeigten Dateien kann ich auch keine LCKWs sehen, wäre für eine reine Auswertung auch ungewöhnlich, aber die Liste kommt nicht aus den Socken.
    Leider habe ich keinen Zugriff auf die Sourcen so das ich nicht sehen kann was er wirklich liest und evtl. verwirft.
    Stutzig macht mich halt nur das die CPU nur bei 1,0 liegt und bei wrksysact liegt die Overall DB CPU util locker bei 0,0 nur wenn einer der Kollegen was startet sehe ich das die DB auf 20% geht.

    Gibt es eine Möglichkeit für mich den Flaschenhals zu finden oder ist das nur dem Programmierer möglich?

    GG

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Das wäre wieder so ein Fall für den DB-Monitor.
    Am einfachsten kannst du den über den Navigator starten - beenden - analysieren.

    lg Andreas

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ob der DB-Monitor da hilft?
    250 IO's/Sekunde ist da nicht so viel. Theoretisch geht da mehr.

    Allerdings sagt die Anzahl IO's nichts über die Anzahl Sätze aus da beim Lesen ja durchaus auf 32KB geblockt wird. Je nach Satzlänge kann ein IO also durchaus mehrere Sätze beinhalten.

    Das Problem liegt hier ggf. an der verwendeten Arbeitsdatei (QTEMP?).
    Ich habe es schon häufig erlebt, dass Arbeitsdateien mit FRCRATIO(1) angelegt und so auch in die QTEMP kopiert werden. Dies führt natürlich zu erheblichen Einbußen, da beim Schreiben erzwungenermaßen jeder einzelne Satz direkt auf die Platte geschrieben werden muss.
    Es gibt keinerlei Gründe für FRCRATIO(1) insbesonders in so einem Fall.

    Beim Imfor-XPPS z.B. habe ich viele Arbeitsdateien auf FRCRATIO(*NONE) gestellt und die Batchjobs wurden z.T. erheblich schneller fertig.
    Laufzeiten von über 1 Stunde auf unter 5 Minuten!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ob der DB-Monitor da hilft?
    250 IO's/Sekunde ist da nicht so viel. Theoretisch geht da mehr.


    Das Problem liegt hier ggf. an der verwendeten Arbeitsdatei (QTEMP?).
    Ich habe es schon häufig erlebt, dass Arbeitsdateien mit FRCRATIO(1) angelegt und so auch in die QTEMP kopiert werden. Dies führt natürlich zu erheblichen Einbußen, da beim Schreiben erzwungenermaßen jeder einzelne Satz direkt auf die Platte geschrieben werden muss.
    Es gibt keinerlei Gründe für FRCRATIO(1) insbesonders in so einem Fall.
    Kann ich das im laufenden Job feststellen?
    GG

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Prüfe, welche Dateien upgedatet oder geschrieben werden und per DSPFD die FRCRATIO.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2012
    Beiträge
    71
    Soeben wieder mal selbst erlebt...
    Kann es sein, dass die Listen mit Joins und DYNSLT verabeitet werden?

    QAQQINI lässt grüssen.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dann wäre allerdings die CPU-Last am Anfang ungleich höher da auch hier ggf. intern erst ein Index aufgebaut wird.
    Nach dem Open geht das Lesen dann allerdings sehr schnell.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Tja, so wie ich das sehe wird direkt in die Spooldatei geschrieben ohne Sortierdatei in Qtemp oder so. Heißt er muß dann für jeden einzelnen Datensatz tausende andere überlesen.

    Was mich halt wundert ist das die CPU Auslastung so gering ist.

    GG

  9. #9
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Zitat Zitat von KingofKning Beitrag anzeigen
    Tja, so wie ich das sehe wird direkt in die Spooldatei geschrieben ohne Sortierdatei in Qtemp oder so. Heißt er muß dann für jeden einzelnen Datensatz tausende andere überlesen.

    Was mich halt wundert ist das die CPU Auslastung so gering ist.

    GG
    Sortierdateien in QTEMP - das war damals, vorm Kartoffelkrieg ;-)

    Die CPU-Auslastung kann aus folgenden Gründen gering sein:
    - hohe Plattenlast (hatten wir ja nicht)
    - häufige Jobwechsel (Aktivitätslevel, Speicherpoolgröße)
    - häufige open/close Operationen
    - locking conditions
    etc...

    solang Du nicht weisst, was im Programm so genau abgeht, ist das alles nur Raterei. Tracen, Debuggen, oder im wrkactjob den Callstack beobachten mit häufiger Aktualisierung. Ansonsten brauchen wir Glaskugeln

    -h
    IBM Champion 2022, 2023, 2024, 2025
    Common Europe Advisory Council / Hall of Fame
    http://pub400.com
    visit www.POWERbunker.com for bespoke IBM i hosting

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... das ist rein akademisch, da man ohne Quelle das Problem eh nicht beheben kann.
    Als erstes wären Jobstart und Completion message interessant - die weisen Laufzeit und verbrauchte CPU aus. Dann könnte man sich mal den callstack mit mehrfachem Refresh ansehen und die geöffneten Dateien mit mehrfachem refresh; Database Monitor hilft wahrscheinlich nix, das riecht nach Rekord Löffel Ekzem...

    D*B

    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo *all,
    in unserem Warenwirtschaftssystem können wir div. Listen im Batch abrufen. Ich sehe den Job auch fröhlich im Qbatch mit so 1,0 bis 1,2% CPU. Während des laufs macht er ca. 2443 Aux-IOs innerhalb von 10 Sekunden. Der ganze Job läuft über eine Stunde!!
    Bei den angezeigten Dateien kann ich auch keine LCKWs sehen, wäre für eine reine Auswertung auch ungewöhnlich, aber die Liste kommt nicht aus den Socken.
    Leider habe ich keinen Zugriff auf die Sourcen so das ich nicht sehen kann was er wirklich liest und evtl. verwirft.
    Stutzig macht mich halt nur das die CPU nur bei 1,0 liegt und bei wrksysact liegt die Overall DB CPU util locker bei 0,0 nur wenn einer der Kollegen was startet sehe ich das die DB auf 20% geht.

    Gibt es eine Möglichkeit für mich den Flaschenhals zu finden oder ist das nur dem Programmierer möglich?

    GG
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. SQL Performance
    By mariupol1963 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 11-08-06, 13:06
  2. Performance CRTJVA
    By Muchi in forum NEWSboard Java
    Antworten: 0
    Letzter Beitrag: 07-08-06, 14:25
  3. Performance WRKSPLF *ALL
    By Wolferl in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 06-06-06, 09:18
  4. Brain Collection Performance Probleme
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 06-03-06, 15:33
  5. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 18:38

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •