Anmelden

View Full Version : iSeriesAccess - DB2 Zugriff sehr Langsam



Seiten : [1] 2

h-net
29-10-07, 12:55
Hallo,

entschuldigung, fals ich jetzt im flaschen forum gelandet bin.(wusste net wohin ich mein problem sonst posten soll)

Mein systemaufbau:
Linux server der mit iSeriesAccess-5.4.0 über eine vpn-verbindung(sehr sicher fehlerfrei/schnell genug) auf eine iSeries V5R4 zugreift.

Mein Problem:
Die datenbankverbindung ist SEHR langsam, wenn ich versuche mit php aus der DB2 daten abzufragen. Alleine der Connect zur datenbank braucht ca 2 Sekunden.

das ist meine odbcinst.ini:
[DB2]
Description = iSeries Access for Linux ODBC Driver
Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1das meine odbc.ini:

[sample]
Description = Test to DB2
Driver = DB2
System = ***.***.***.***
DefaultLibraries = "*********"habe aber schon von vielen anderen gehört, das das eigentlisch recht flott gehen sollte...

wö könnte der fehler sein?

gruß

TARASIK
29-10-07, 13:57
Hallo,
wie sieht es denn mit dem installierten Servicepack ISeries Access aus ? AKtuell ist SI27741.

h-net
29-10-07, 20:55
soweit ich das sehe gibt es für linux iSeriesAccess keine service-packs...

aber ich glaube auch nicht das es daran liegt... habe meine i5 jetzt extra auf V5R4 geupdated, weil ich damit auch iSeriesAccess für V5R4 umsteigen konnte... zuvor hatte ich V5R3... mit dem neuen ist es genauso langsam wie zuvor....

bin am verzweifeln...

gruß

TARASIK
30-10-07, 07:07
Hallo,
vielleicht solltest Du Dich einmal mit diesem Redbook auseinandersetzen. Suche dort einmal nach "Performance".

http://www.redbooks.ibm.com/redbooks/pdfs/sg247327.pdf

KM
30-10-07, 07:22
Hast Du Dein PHP mit der Option ./configure --with-ibm-db2 konfiguriert ?

Damit kannst Du dann den db2_connect() verwenden anstatt dem odbc_connect(). Der db2_connect() ist spezieller für die DB2 ausgelegt und ist etwas schneller als der odbc_connect().

Aber der Verbindungsaufbau zur iSeries ist mit beiden Varianten nicht sonderlich schnell.

Gruß,
KM

h-net
30-10-07, 19:54
ich habe bis jetzt so mitbekommen das zur zeit php als DIE NEUENTDECKUNG auf der iseries gesehen wird... ich programmiere schon seit jahren mit php und verwende als datenbank mysql... in sachen geschwindigkeit muss ibm da aber noch einiges tun... ich finde um anständig software zu entwickeln ist das alles zu langsam... selbst wenn man die php scripts auf der iseries selber ausführt, ist es zu langsam...

habe neulich an einem online-seminar vom "midrange-magazin" teilgenommen... da wurde php in verbindung mit db2 hoch angepriesen... wissen die alle nicht was geschwindigkeit heißt? (ich kann mir immernochnicht vorstellen das das "normal" ist, das das so langsam geht)

falls jemand ne lösung weis, bin um jeden vorschlag dankbar...

RobertPic
31-10-07, 01:57
.. wissen die alle nicht was geschwindigkeit heißt? (ich kann mir immernochnicht vorstellen das das "normal" ist, das das so langsam geht)

falls jemand ne lösung weis, bin um jeden vorschlag dankbar...

Zuerst einmal:
Egal ob PHP, ODBC oder JDBC: die DB2 braucht deutlich länger als andere Datenbanken für den Verbindungsaufbau. Großmächtige UserExit-Programme (1) können diesen Effekt noch verschlimmern.

Meine PHP-Erfahrungen beschränken sich auf ein paar Hack's, daher meine Frage: Wie managed du die Connections? Gibt es da einen Connectionpool, gibt es eine Connection je Session oder wird jeden HTML-Request eine Connection auf- und zugemacht?

Dank Connectionpool, fällt die Öffnungszeit bei meinen Webappliaktionen (Java) eigentlich nicht in Gewicht.

(1) Auf der i5 kann man auch für ankommende ODBC-Verbindungen/Befehle in "reinklemmen" und bestimmte Prüfungen durchzuführen.


ich habe bis jetzt so mitbekommen das zur zeit php als DIE NEUENTDECKUNG auf der iseries gesehen wird...
Da ich das IBM-Marketing mittlerweile auch schon viele Jahre kenne, mein Kommentar:
1. IBM tanzt nie nur auf einer Hochzeit. Wenn der Markanteil - wie bei PHP stimmt - dann fühlt sich auch IBM "eingeladen".

2. IBM-Philosophie: Wenn die Performance nicht stimmt - ist die AS/400/iSeries/i5 zu klein dimensioniert.

3. Das Jahr der Ankündigung/Einführung ist nicht immer das gleiche Jahr, der ersten brauchbaren Version...

4. Das die Lösung Verbesserungsbedarf hat, wird frühestens (indirekt) zugegeben, wenn bereits die nächste Maschinen/Release-Generation verkauft werden kann.

/Robert

BenderD
31-10-07, 08:20
@Robert: ich stimme in den meisten Punkten mit dir überein, würde aber folgendes zu bedenken geben:
Die AS400 ist einer der skalierbarsten Systeme, die Spanne der in Rechenzentren anzutreffenden Maschinen reicht von MickerPC Level voriges Jahrhundert bis zu aktuellem Highend der Prozessortechnologie, die Erwartungen der Inhaber stehen in krassem Gegensatz dazu, die meinen das Ding müsse im gleichen Maße schneller sein, wie es mehr gekostet hat als ein Aldi PC.
Meine Erfahrung (Java und ODBC): die AS400 ist ähnlich schnell wie technisch vergleichbare (in Worten: vergleichbare) andere Systeme, sowohl was den connect angeht, als auch Abfragen. Wie dann der wirtschaftliche Vergleich aussieht, lässt sich nicht ganz so einfach beantworten, der scheint aber für die meisten nicht das Problem zu sein.

mfg

Dieter Bender



Egal ob PHP, ODBC oder JDBC: die DB2 braucht deutlich länger als andere Datenbanken für den Verbindungsaufbau. Großmächtige UserExit-Programme (1) können diesen Effekt noch verschlimmern.
/Robert

RobertPic
31-10-07, 10:54
Hier ein paar Benchmarks:




Datenbank 1.Verbindg Schnitt Folge
MSSQL ___0,219 ____0,026
DB2 810 __3,812 ____ 0,451
DB2 i5 ____0,828 ____0,293
Postg _____0,281 ____0,007
Ora 8 _____1,265 ____0,071
HSQL _____0,406____0,000



Gemessen wurde die allererste Verbindung nach PC Neustart + der Schnitt der nächsten 9 Verbindungen. Wenn ich das Programm dann nochmal laufen lassen, verbessert sich die 1. Verbindung.


MSSQL (Windows) und PostgreSQL (Linux) läuft auf neuer Serverhardware (2 CPU's mit je 2 Kernen) und ist den DB2-Maschinen (CPU's, Ram..) überlegen - kostet aber nur einen Bruchteil.....

810, 1000CPW, 2GB Ram, mit Exitprogramm (CL nur IF ohne DB)
i5, 1200CPW, 4GB Ram (kein Exitprogramm)


Oracle 8 (AIX) auf einer 8 Jahre alten RS/6000 (vgl. Model 170)


HSQL embedded (native Java-DB)


Bei meinen Webanwendungen fällt die DB2 aber nicht negativ auf. Daher mein Verdacht, dass die PHP-Anwendungen für jede HTML-Seite die Verbindung neu aufmacht.


/Robert

Fuerchau
31-10-07, 11:12
Hier hilft dann ConnectionPooling.