BTM Monitoring

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

BTM Monitoring

Gérald Quintana
Hello,

I am monitoring a BTM 2.0.1 instance in production with JMX, there is
something I find strange:
Under heavy load, the InPoolSize=MaxPoolSize (=TotalPoolSize), whereas
I would expect InPoolSize=0 (no connection left in the pool).
See http://img163.imageshack.us/img163/5240/btmconnectionpooljmx.png
The MaxPoolSize is 30.

Does it mean my connection pool is nearly empty between 11h30 and
12h00? Or nearly full? Should I increase the TotalPoolSize?

Gérald

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: BTM Monitoring

Ludovic Orban-2
Unless you execute lots of long-running queries it is pretty normal that when monitoring InPoolSize you don't see the inPoolSize being very low.

Your graph tend to show that your pool is right sized, you could even run your application with a slightly smaller pool too IMHO.



2010/12/6 Gérald Quintana <[hidden email]>
Hello,

I am monitoring a BTM 2.0.1 instance in production with JMX, there is
something I find strange:
Under heavy load, the InPoolSize=MaxPoolSize (=TotalPoolSize), whereas
I would expect InPoolSize=0 (no connection left in the pool).
See http://img163.imageshack.us/img163/5240/btmconnectionpooljmx.png
The MaxPoolSize is 30.

Does it mean my connection pool is nearly empty between 11h30 and
12h00? Or nearly full? Should I increase the TotalPoolSize?

Gérald

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email



Reply | Threaded
Open this post in threaded view
|

Re: BTM Monitoring

Gérald Quintana
Thanks for your answer,

On the chart between 11h00 and 12h00, connection pool raised its max
(30), as a result users were waiting for a connection (seen from Java
method monitoring). We raised max from 30 to 100, and now we have up
to 45 opened connections. IMHO, pool was too small, not too big!

From an admin point of view, the InPoolSize attribute is not relevant,
but TotalPoolSize is.

Gérald

2010/12/10 Ludovic Orban <[hidden email]>:

> Unless you execute lots of long-running queries it is pretty normal that
> when monitoring InPoolSize you don't see the inPoolSize being very low.
>
> Your graph tend to show that your pool is right sized, you could even run
> your application with a slightly smaller pool too IMHO.
>
>
>
> 2010/12/6 Gérald Quintana <[hidden email]>
>>
>> Hello,
>>
>> I am monitoring a BTM 2.0.1 instance in production with JMX, there is
>> something I find strange:
>> Under heavy load, the InPoolSize=MaxPoolSize (=TotalPoolSize), whereas
>> I would expect InPoolSize=0 (no connection left in the pool).
>> See http://img163.imageshack.us/img163/5240/btmconnectionpooljmx.png
>> The MaxPoolSize is 30.
>>
>> Does it mean my connection pool is nearly empty between 11h30 and
>> 12h00? Or nearly full? Should I increase the TotalPoolSize?
>>
>> Gérald
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: BTM Monitoring

Ludovic Orban-2
You know your system better than I do so you're probably right.

I've implemented InPoolSize mainly to trace down connection leaks and I've never used the MBeans to monitor a production pool myself, so once again it looks like you have more experience than I do in this area.

Please keep in mind that the BTM pool was originally design to be extremely simple, it was just feature-complete enough to make it production ready. It's just that over the years it is the code area for which I received the most feature requests and while I implemented most of them I've never personally had much use for most new features.

The JDBC pool (the JMS one as well, to a lesser extent) could be improved even more to eventually end up on par with the best non-XA pools out there but that's too much time consuming for me to do in my own spare time: the latest and largest improvements (connection sharing, JDBC 4, statements cache...) were donated by a 3rd party. In short, don't expect me to implement any big feature any time soon without any kind of sponsorship.

If you feel like implementing some new features on your own, you're more than welcome!


2010/12/10 Gérald Quintana <[hidden email]>
Thanks for your answer,

On the chart between 11h00 and 12h00, connection pool raised its max
(30), as a result users were waiting for a connection (seen from Java
method monitoring). We raised max from 30 to 100, and now we have up
to 45 opened connections. IMHO, pool was too small, not too big!

From an admin point of view, the InPoolSize attribute is not relevant,
but TotalPoolSize is.

Gérald

2010/12/10 Ludovic Orban <[hidden email]>:
> Unless you execute lots of long-running queries it is pretty normal that
> when monitoring InPoolSize you don't see the inPoolSize being very low.
>
> Your graph tend to show that your pool is right sized, you could even run
> your application with a slightly smaller pool too IMHO.
>
>
>
> 2010/12/6 Gérald Quintana <[hidden email]>
>>
>> Hello,
>>
>> I am monitoring a BTM 2.0.1 instance in production with JMX, there is
>> something I find strange:
>> Under heavy load, the InPoolSize=MaxPoolSize (=TotalPoolSize), whereas
>> I would expect InPoolSize=0 (no connection left in the pool).
>> See http://img163.imageshack.us/img163/5240/btmconnectionpooljmx.png
>> The MaxPoolSize is 30.
>>
>> Does it mean my connection pool is nearly empty between 11h30 and
>> 12h00? Or nearly full? Should I increase the TotalPoolSize?
>>
>> Gérald
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email



Reply | Threaded
Open this post in threaded view
|

Re: BTM Monitoring

Gérald Quintana
Thanks for your answer, it's interesting as always.

I am just looking for best practices for a production use of BTM. The
lessons I learnt till now could be
- Monitor TotalSize not InPoolSize
- When TotalSize reaches MaxSize, then increase MaxSize

About my DBCP/BTM Pool comparison, after a bit of
investigation/reflection, BTM pool features are just what we need,
connection pool reset via JMX is perfect!


Gérald

2010/12/10 Ludovic Orban <[hidden email]>:

> You know your system better than I do so you're probably right.
>
> I've implemented InPoolSize mainly to trace down connection leaks and I've
> never used the MBeans to monitor a production pool myself, so once again it
> looks like you have more experience than I do in this area.
>
> Please keep in mind that the BTM pool was originally design to be extremely
> simple, it was just feature-complete enough to make it production ready.
> It's just that over the years it is the code area for which I received the
> most feature requests and while I implemented most of them I've never
> personally had much use for most new features.
>
> The JDBC pool (the JMS one as well, to a lesser extent) could be improved
> even more to eventually end up on par with the best non-XA pools out there
> but that's too much time consuming for me to do in my own spare time: the
> latest and largest improvements (connection sharing, JDBC 4, statements
> cache...) were donated by a 3rd party. In short, don't expect me to
> implement any big feature any time soon without any kind of sponsorship.
>
> If you feel like implementing some new features on your own, you're more
> than welcome!
>
>
> 2010/12/10 Gérald Quintana <[hidden email]>
>>
>> Thanks for your answer,
>>
>> On the chart between 11h00 and 12h00, connection pool raised its max
>> (30), as a result users were waiting for a connection (seen from Java
>> method monitoring). We raised max from 30 to 100, and now we have up
>> to 45 opened connections. IMHO, pool was too small, not too big!
>>
>> From an admin point of view, the InPoolSize attribute is not relevant,
>> but TotalPoolSize is.
>>
>> Gérald
>>
>> 2010/12/10 Ludovic Orban <[hidden email]>:
>> > Unless you execute lots of long-running queries it is pretty normal that
>> > when monitoring InPoolSize you don't see the inPoolSize being very low.
>> >
>> > Your graph tend to show that your pool is right sized, you could even
>> > run
>> > your application with a slightly smaller pool too IMHO.
>> >
>> >
>> >
>> > 2010/12/6 Gérald Quintana <[hidden email]>
>> >>
>> >> Hello,
>> >>
>> >> I am monitoring a BTM 2.0.1 instance in production with JMX, there is
>> >> something I find strange:
>> >> Under heavy load, the InPoolSize=MaxPoolSize (=TotalPoolSize), whereas
>> >> I would expect InPoolSize=0 (no connection left in the pool).
>> >> See http://img163.imageshack.us/img163/5240/btmconnectionpooljmx.png
>> >> The MaxPoolSize is 30.
>> >>
>> >> Does it mean my connection pool is nearly empty between 11h30 and
>> >> 12h00? Or nearly full? Should I increase the TotalPoolSize?
>> >>
>> >> Gérald
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe from this list, please visit:
>> >>
>> >>    http://xircles.codehaus.org/manage_email
>> >>
>> >>
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email