Oracle Datenbank performance-Problem auf den JBoss AS 7
Jungs, ich bin die aktiv an der Migration einer Anwendung auf JBoss 5, JBoss AS 7.
Nach der migration habe ich bemerkt, dass die Datenbank-Aufrufe nahm einen großen Leistungseinbruch.
War ich mit ojdbc14 mit pool(min - max 5 - 100), die auf JBoss 5 und es funktionierte ziemlich gut für uns.
Mit JBoss AS 7, installiert hab ich den Treiber als Modul.
Alle meine Fragen sind nKlicken Einnahme 10-mal länger.
Für die ex, wenn eine Abfrage gedauert hat 30ms, während ich auf den JBoss AS 5 , es wird die Einnahme von 400-600ms auf JBoss AS 7.
Habe ich versucht mit der Treiber gezeigt, in der config unten (ojdbc6, ojdbc14)
Beobachtung ist , dass die Leistung verringern, ist mehr spürbar auf einer linux-Maschine als eine OS-X-box.
FYI. Ich habe versucht mit JBoss AS 7 auf Java 1.6 und 1.7
Meine Anwendung selbst enthält:
- struts 2 front-end (für die request-Verarbeitung, kein web-ui)
- Session Beans im backend
- QuartzPlugin für batch-jobs.
- eine benutzerdefinierte MBean
Habe ich versucht
- senken und erhöhen die Größe des Pools
- vorfüll = true und false
- Wechsel zwischen ojdbc6 und ojdbc14
standalone.xml
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/MyDS" pool-name="hive-datasource" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@host:port:service</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-property name="defaultRowPrefetch">
50
</connection-property>
<driver>oracle14</driver>
<pool>
<min-pool-size>20</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>theusername</user-name>
<password>thepassword</password>
</security>
<validation>
<check-valid-connection-sql>select * from dual</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
<use-fast-fail>false</use-fast-fail>
<exception-sorter class-name="org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter"/>
</validation>
<timeout>
<set-tx-query-timeout>true</set-tx-query-timeout>
<blocking-timeout-millis>300000</blocking-timeout-millis>
<idle-timeout-minutes>30</idle-timeout-minutes>
</timeout>
<statement>
<track-statements>false</track-statements>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
</statement>
</datasource>
<drivers>
<driver name="oracle6" module="com.oracle.ojdbc6">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
<driver name="oracle14" module="com.oracle.ojdbc14">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
</drivers>
</datasources>
</subsystem>
InformationsquelleAutor Kalyan Chakravarthi | 2013-06-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir sehen Probleme mit upgrades verändern die performance der Datenbank sehr oft. Der Schlüssel ist, zu fassen, wie Datenbank-Abfragen haben sich geändert zwischen JBoss 5 und JBoss7. Die Tatsache, dass Sie sehen, eine wesentliche Verschlechterung ein OS und weniger auf ein anderes ist nicht verwunderlich, denn jedes OS hat seine stärken und Schwächen, wenn es um die Effizienz der Verarbeitung.
Mein Vorschlag wäre, zu ermitteln, mit hoher Sichtbarkeit, die auf die Datenbank, einschließlich der Abfragen, die verursachen die größten Engpässe mit JBoss 7 und die top-Ereignisse Warten. Im Falle Sie nicht vertraut sind, Oracle bricht die Ausführung der Abfrage unten in diskrete Schritte genannt, Wait-Events. Diese kann alles sein: vom warten auf eine Tabellensperre auf die Disk-I/O-Zeit, die Ereignisse. Es gibt fast 1000-Wait-Events in Oracle, so bekommen Sie diese Informationen manuell und korrelieren der wait event mit Abfrage-und hardware-Ressourcen sehr schwer sein kann.
Hier ist ein link zu einer kostenlosen version der Ignite-Datenbank-monitoring-software, die Ihnen helfen sollen aus http://www.ignitefree.com
Bitte aktualisieren Sie die Frage, anstatt zu kommentieren.
InformationsquelleAutor Eshbaugh
Beispielsweise eine operation, die dauerte 2 MS auf JBoss5/Java6 ist die Einnahme von 2-5sec auf JBoss7/Java6 oder 7. Dies passiert nur, wenn ich laufen auf einer linux-Maschine. die Maschine selbst haben 8Gig+ Speicher frei und ist ein Xeon-Prozessor. Läuft alles normal, wenn ich führen Sie es auf einem OS X server/laptop
InformationsquelleAutor Kalyan Chakravarthi