PDA

View Full Version : Resin 3.1 not releaseing threads


jamesmedlycott
06-03-2010, 09:33 AM
we are running resin 3.1.6, and we are seeing that resin is not releasing threads when expected to do so.

Ee have the socket-timeout, keeoalive-max and keepalive-timeout set.

Any ideas?

emil
06-03-2010, 05:17 PM
Hi,

What do you mean by "releasing threads"? Do you mean destroying them? If they're not active, it's not much overhead -- just a couple hundred KB of VM at most.

Thanks,
Emil

jamesmedlycott
06-04-2010, 08:55 AM
What we are seeing is a gradual increase in the number of threads, but we know from monitoring the server that most are idle.

They way we have read the setting we had expected resin to drop idle threads.

emil
06-04-2010, 05:58 PM
Hi,

What kind of numbers are you seeing for the threads? (# of idle, # active, # peak) I tested 3.1.6 with 1000 simultaneous and got a spike from 43 to 65 threads during the requests, which immediately fell back to 43 once the load stopped.

Emil

jamesmedlycott
06-07-2010, 02:17 PM
Our conf setting are:
<thread-max>200</thread-max>
<thread-idle-min>5</thread-idle-min>
<thread-idle-max>200</thread-idle-max>
<socket-timeout>65s</socket-timeout>
<keepalive-max>128</keepalive-max>
<keepalive-timeout>15s</keepalive-timeout>

What we are seeing is that the number of threads goes up and down, but it never goes down to the level before the spike (it seems to keep a few extra back).

We run a dual site website, this happens on one leg, but not the other, yet the setting are the same.

IT's a bit hard to explain!

emil
06-07-2010, 05:19 PM
Just to check, these threads are named "resin-<some number>", right? Just making sure that there's not a framework or something else that's generating threads.

Thanks,
Emil

jamesmedlycott
06-08-2010, 08:25 AM
Yes they are resin threads.

What it looks like is that we are allowing resin to pick the number of idle threads from 5 to 200, but resin is not picking the smae value on each webserver.

Should we drop the max idle threads?

or are we missing a parameter?

Many thanks

emil
06-08-2010, 11:20 PM
Ah, I didn't see before that you configured thread-idle-max to 200. Resin will keep idle threads anywhere between your thread-idle-min and thread-idle-max. There are several situations where you might have more idle threads than your minimum. If you want fewer, set your max lower. Is there a particular reason that a high number of threads is concerning you? Idle threads are pretty low impact, especially on a 64-bit system.

Emil

jamesmedlycott
06-25-2010, 09:30 AM
The main concern is that we are operating 2 resin instance on different servers.

When we start up both resin instances the number of threads are the same, but over time (about 1 day) we notice they start to seperate, with one leg never dropping and keeps going on a upward trend.

The other leg peaks and drops (expected behavour).

So we are concerned as to whether these extra threads are infact idle or really stuck threads.

We probable need to tune our thread setting to!

emil
06-25-2010, 05:07 PM
Hi,

Are your Resin instances behind a load balancer (either Resin, Apache, HW, etc.) and if so, is one of them receiving more traffic than the other? I'm wondering if the load balancer is unevenly weighting one server over the other.

Thanks,
Emil

jamesmedlycott
06-28-2010, 08:04 AM
Yes they are behind a load balancer, but our monitoring tools is showing a even distribution.

James