tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Tomcat Concurrency
Date Tue, 16 Jul 2013 16:44:05 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Konstantin,

On 7/15/13 6:38 PM, Konstantin Kolinko wrote:
> 2013/7/16 Mark Haroldson <MarkHaroldson@msn.com>:
>> Hello;
>> 
>> 
>> 
>> I am running a tomcat 6 webapp using Jersey and I am running into
>> a concurrency issue. When there are multiple concurrent
>> connections to tomcat only one or two are processed concurrently.
>> I have increased the maxThreads on the connector and now can see
>> the requests being processed  by different threads however I
>> still on observe one or two threads running concurrently.
>> 
>> 
>> 
>> Example:
>> 
>> Given the following servlet;
>> 
>> 
>> 
>> Servlet()
>> 
>> {
>> 
>> Output("Start thread");
>> 
>> Thread.sleep(20000);
>> 
>> Output("End thread")
>> 
>> }
>> 
>> 
>> 
>> I would expect the following output
>> 
>> 
>> 
>> Start Thread
>> 
>> Start Thread
>> 
>> Start Thread
>> 
>> Start Thread
>> 
>> End Thread
>> 
>> End Thread
>> 
>> End Thread
>> 
>> End Thread
>> 
>> 
>> 
>> Instead I see
>> 
>> Start Thread
>> 
>> Start Thread
>> 
>> End Thread
>> 
>> End Thread
>> 
>> Start Thread
>> 
>> End Thread
>> 
>> Start Thread
>> 
>> End Thread
>> 
>> 
>> 
>> What are the factors that control thread concurrency in Tomcat?
>> Has anyone seen behavior like this before? Should I expect a high
>> number of concurrent threads or does java/tomcat gate access to
>> the servlet?
>> 
> 
> Looking at a crystal ball I would guess that your client is a web 
> browser. A well-behaving browser creates no more than 2
> simultaneous connections to the same host (a limitation recommended
> by the HTTP specification).

No longer true. Firefox and Chrome default to 6 per server:
http://kb.mozillazine.org/Network.http.max-connections-per-server
http://code.google.com/p/chromium/issues/detail?id=12066

> A Tomcat can certainly serve more than 2 clients simultaneously. It
> is possible to mis-configure it or create a servlet that serves no
> more than 1 client, but you must be creative (in a newbie way) to
> do so.
> 
> Without seeing your actual configuration and your actual code it
> is impossible to provide any review.
> 
> If congestion were at Tomcat side, as when several threads are
> waiting for the same resource, it would be easy to spot the place
> by taking a pair of thread dumps (see wiki -> FAQ ->
> Troubleshooting).

Mark, you should probably print the thread id when doing your
printlns. That will help you see what is going on. Also, you might
want to try making more than 4 connections. What client are you using?

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJR5XhVAAoJEBzwKT+lPKRY00wP/3tOIEuEsw+4wdtZhnGYg+aI
nQj82y7wakuLBYHKDstl/EoEAqKtLoV/hM2nWyctpylkRlZs5oj8fPVEb6xINf4r
sqqJIwAFGomMod7H+TrQsXa4Tf6v1579iGGAPg4HgVw9MebzYz1y9eFeJ6BeODNw
/eapZyCeQFFP3CmFQIyyvYk060EqQnaefo8wTMYVc+UZ59zPvq9NwaigerCUezYG
nwq/GqcqRjdI+xUNkiCraldPVt7amBrUSeZsh2pvYzHvaAuzokaqHMo2kcpixyDf
kuTwCOdZHUaMsMsHyfh5b6jGNR06DV1djRNJF46jArL4DMCh9NS/H4UgACA1PgAb
OcW+YOn4lBzzR0lHfx3opitzn7d1i7s6NMwA7djwHRma+XusuMiZLUPahsq3/tXk
+zwGPiAKyxMb9U68hSZSzSbrEVjdeuyfUo8RKxFvX6RGIK8PcPpkZwOYyzMjuk6u
rVyxuSB5Ody4slGOAR/3jo6egTe6TXzqeXkL+Zlq7M5SVFVjUZlzmhc7jnb7wqBl
ZAXIV6hJmDPek+cgsaKi990KRYeWSqtU8W33WR21hgVZBsavJ0uz7wDNaEoPo4Zs
smA2rMVLA6yWFfOM7oaCJs0UwIfY/N2PNYmVmO8RjUzFT8533GHMKlR/oCAVsnrJ
u8UNSi9fglS5pelSMX4Z
=Punl
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message