On 19/10/2012 08:43, Romain Van der Keilen wrote:
> Hi Guys,
> 
>> After that, I looked deeper into the database configuration, as I saw 
>> in the tests that non db relative actions were responding very fast 
>> (50ms for a 1000 users basis). I finally found an OracleDataSource in 
>> the Oracle Driver, which reacts far way better than the 
>> BasicDataSource I was using before (12s for 150 users for the basic 
>> data source, 1.5s for the oracle one, same test).
> 
>> I'd be interested to see the difference in configuration. I've never had 
>> problems with Tomcat's (really commons-dbcp's) BasicDataSource.
>> Perhaps when you switched, you changed some essential configuration option?
> 
> 
> In fact, I do not use the datasource directly in the tomcat config, but as a 
> Spring Bean. Maybe the difference is there. 
> As point of comparisons, here are the new and old configurations:
> 
>     <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource" 
> destroy-method="close">
>         <property name="URL" value="${alea.cesardb.jdbc.url}" />
>         <property name="user" value="${alea.cesardb.jdbc.login}"/>
>         <property name="password" value="${alea.cesardb.jdbc.password}" />
>         <property name="connectionCachingEnabled" value="true" />
>         <property name="connectionCacheProperties">
>             <value>
>                 MinLimit:5
>                 MaxLimit:200
>                 InitialLimit:5
>                 ConnectionWaitTimeout:1200
>                 InactivityTimeout:1080
>                 ValidateConnection:true
>             </value>
>         </property>
>     </bean>
> 
>     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
> destroy-method="close">

Exactly which version of commons DBCP are you using?

That class is not one shipped with Tomcat - it's a dependency of your
application.  If it's an old version, it's probably the heavily
synchronised DBCP & this might account in part for the difference in
performance.


>         <property name="driverClassName" value="${alea.cesardb.jdbc.driver}"/>
>         <property name="url" value="${alea.cesardb.jdbc.url}"/>
>         <property name="username" value="${alea.cesardb.jdbc.login}"/>
>         <property name="password" value="${alea.cesardb.jdbc.password}"/>
>         <property name="initialSize" value="10" />
>         <property name="minIdle" value="10" />
>         <property name="maxIdle" value="20"/>
>         <property name="maxActive" value="150"/>

Not the same 150 != 200.

>         <property name="maxWait" value="10000"/>
>         <property name="validationQuery" value="select * from dual"/>
>         <property name="testOnBorrow" value="false"/>
>         <property name="testWhileIdle" value="true"/>
>         <property name="timeBetweenEvictionRunsMillis" value="1200000"/>
>         <property name="minEvictableIdleTimeMillis" value="1800000"/>
>         <property name="numTestsPerEvictionRun" value="5"/>
>         <property name="defaultAutoCommit" value="true"/>
>     </bean>
> 
> 
> I did the same tests with only that bean changed, and what I saw on an excel 
> graphic with mean response time is speechless. I changed my test config to an 
> Ubuntu 12.04 with latest JMeter version and OpenJDK 7.
> What I could see is that with the BasicDatasource, the load of the oracle 
> database was a 5-6 (for a 128VProc solaris machine), and the response time 
> was exponentially increasing. With the Oracle datasource, the response time 
> is linearly increasing and the load of the database server is at 61 when I 
> simulate 200 concurrent sessions. 
> 
>> As previously mentioned by Mark (who is one of the Tomcat developers), I was 
>> wrong and the changes to timeouts and keepAlive that I recommended should 
>> not have made a difference, considering that you are using the NIO connector 
>> in your configuration.
>> (My comments were only valid in the case of a BIO connector).
>> Yet you seem to indicate 2-3 s. improvement over 15 s., which is about 20%.
>> That is puzzling.
>> Are you sure, and can you reproduce this consistently ?
> 
> In fact, those changes were not the only ones :-) I also changed the 
> acceptCount parameter (set it to 200), the executor configuration and  the 
> compression parameters (I removed the compression config). 

Good plan, change a bunch of things & then compare the results...


p

> After those changes, what I also could see is that before, my JMeter graphic 
> result was very chaotic. Now, response time is almost a straight line in 
> charge, which is for me, a good sign of an healthy configuration...
> Maybe it's still not perfect, but it's much more better than before ...
> 
> Romain.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 


-- 

[key:62590808]

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to