Supporting maximum number of keep-alive connections 2006-03-17 - By Rajeev Jha
Back Hi I would like to try out tomcat for new my application. I have used tomcat for quite some time, but the nature of new application is very different from the traditional request-response model.
We want to build an application that supports about 1024 keep-alive connections per machine.(2 GB, x86 running linux 2.6.x). We need keep-alive support because application is push-oriented. Browsers send a request and the server keeps the connection open till browser time-out(~10 mins).
mean-while data is pushed to client as javascript commands. when browser time-out happens, a command for new connection is sent back.
Application is dynamic in nature, using servlets to publish data. After googling and going thru mailing archives, i would like to collect feedback from other tomcat users.
option A) This option is one thread - one connection, so not very scalable. Just use coyote HTTP/JK connector , set the thread stack size, VM heap size and maximum threads in config file. For my other applications, the defaults worked fine for me. But this time i am looking for as many threads as i can support.
What is the maximum number of threads people have success with on "NORMAL" machines?( ~ 2 GB RAM, single processor running linux ) on such a machine what is the maximum possible threads ? what parameters to tune ?
It looks like with a thread stack size of 256 k, 1024 threads should be possible.
option B) Use tomcat APR. adjust the poller size to 1024. I dont know how this works out in real life or what are the max. possible numbers.
option C) Use glassfish's grizzly as http connector. I have seen blog posts about grizzly. can this connector be used with tomcat 5.5.x ? Has anyone had success using it with this kind of requirement ?
Then, the other bottle-neck is, integrating with apache. If we run tomcat APJ APR and apache is the front end then apache would also be hard pressed to do 1024 keep-alive connections. I can try event MPM or worker modules. Does this look ok ?
Active child processes - 32 Server Limit - 64 ThreadsPerChild - 32 MaxClients - 1024
I would appreciate if any of you can speak from experience. Our first aim is to support 1024 keep-alives with tomcat, then 1024 keep-alives with apache/tomcat combo, then maybe run multiple instances then multiple machines ... (Long shot)
I have some dev machines and time for this job. So if you guys help and want me to run some benchmarking tool , i can do that also.
Thanks
Rajeev.
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------ To unsubscribe, e-mail: users-unsubscribe@(protected) For additional commands, e-mail: users-help@(protected)
|
|