Re: Tomcat scalability
Hi, If you want to use Tomcat for high loads, I suggest you to use apache/mod_jk and a cluster of Tomcat instances. With this solution you'll have load-balancing and failover for a lot of users. I don't use a HP very powerful, so, for the performances, I don't know if it is better to have one instance or several instances, but for the administration (applications upgrades, ...) and failover it is better to have several ones. For high performances, some readings : http://cvs.apache.org/~woolfel/benchmark_summary.pdf http://cvs.apache.org/~woolfel/tc_results.html http://brandlay.com/wojtek/publ/tomcat.jsp http://marc.theaimsgroup.com/?l=tomcat-userm=110906276815396w=2 http://www.servlets.com/cos/javadoc/com/oreilly/servlet/CacheHttpServlet.html http://simpleweb.sourceforge.net/performance/comparison.php a tool to test performances : Jmeter (http://jakarta.apache.org/jmeter/) Regards. On Thu, 07 Apr 2005 10:29:22 +0530 Shrikant Navelkar [EMAIL PROTECTED] wrote: Hi, We are planning to deploy an application (JSP/Tomcat/Oracle) for 300-400 concurrent users. The hardware is HP/True UNIX platform and it is very powerful. Unfortunately we can not deploy the application in a phased wise manner. Can somebody help us to understand : 1. How scalable Tomcat is ? Are there sufficient examples of Tomcat for 300 + users ? 1. What are the tools available for scalability testing ? 2. Any document describing performance tuning of Tomcat server 3. Can we implement multiple tomcat instances on same server for better performance ? Thanks in advance Shrikant - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat scalability
1a) It depends on your code. TOmcat can handle it but only if your code can also scale. 1b) Free: Jmeter, seige, apache ab - it depends on the type of test 2) See the faq or wiki http://jakarta.apache.org/tomcat/faq/performance.html http://wiki.apache.org/jakarta-tomcat/UsefulLinks 3) Maybe. This really depends on - Do you have multiple CPUs - Can you a single JVM use multiple CPU's effectively (as compared to 2 or more) - Do you have enough memory - What nuances (to your advantage or disadvantage) are there is thread scheduing across mutlitple JVMs / CPUs for your OS. -Tim Shrikant Navelkar wrote: Hi, We are planning to deploy an application (JSP/Tomcat/Oracle) for 300-400 concurrent users. The hardware is HP/True UNIX platform and it is very powerful. Unfortunately we can not deploy the application in a phased wise manner. Can somebody help us to understand : 1. How scalable Tomcat is ? Are there sufficient examples of Tomcat for 300 + users ? 1. What are the tools available for scalability testing ? 2. Any document describing performance tuning of Tomcat server 3. Can we implement multiple tomcat instances on same server for better performance ? - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat scalability
before you can answer that question, you need to know what the average and peak concurrent requests is. without that 300-400 concurrent users doesn't mean much. If those 400 users hit the site once per minute average over 30 minutes, it would mean 12,000 requests in 30 minutes. Even if the user hits the site once every 30 seconds, that would only be double 24,000 requests in 30 minutes. if I naively divide that to get requests/second, I get roughly 14 concurrent requests per second. Put it another way, that is basically 4% of the users sending a request at the same time. I would suggest stress testing your application. It's probably a good idea to look at your production access logs and run some stats. that way you're using real data as the basis of your test. peter On Apr 7, 2005 12:59 AM, Shrikant Navelkar [EMAIL PROTECTED] wrote: Hi, We are planning to deploy an application (JSP/Tomcat/Oracle) for 300-400 concurrent users. The hardware is HP/True UNIX platform and it is very powerful. Unfortunately we can not deploy the application in a phased wise manner. Can somebody help us to understand : 1. How scalable Tomcat is ? Are there sufficient examples of Tomcat for 300 + users ? 1. What are the tools available for scalability testing ? 2. Any document describing performance tuning of Tomcat server 3. Can we implement multiple tomcat instances on same server for better performance ? Thanks in advance Shrikant - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Tomcat scalability
Hi, We are planning to deploy an application (JSP/Tomcat/Oracle) for 300-400 concurrent users. The hardware is HP/True UNIX platform and it is very powerful. Unfortunately we can not deploy the application in a phased wise manner. Can somebody help us to understand : 1. How scalable Tomcat is ? Are there sufficient examples of Tomcat for 300 + users ? 1. What are the tools available for scalability testing ? 2. Any document describing performance tuning of Tomcat server 3. Can we implement multiple tomcat instances on same server for better performance ? Thanks in advance Shrikant - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Tomcat Scalability
Thanks to everyone who responded to my questions. I appreciate your time. I was really trying to get a sense of what different levers we have in Tomcat to tweak performance as I am going through a performance/stress test process (which is what I am going through now). The comments about ensuring that the way the application works and its design is scalable and efficient are well taken. Thanks again, Haytham Samad -Original Message- From: Chakravarthy, Sundar [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 10:48 AM To: Tomcat Users List Subject: RE: Tomcat Scalability The guideline I use is... Prioritize Use-Cases based on R/W, Frequency Try to optimize the the most frequent Use-Cases Test/Profile you app; often this leads to the following, Optimize database queries since I often find this to be the bottleneck. - Cache objects if you can in memory to avoid DB Queries - Add proper indexes to queries - Do more work within the database if you can - Batch TXNs Use less Java objects,right collection types, algorithms. I wonder how much of a performance boost tweaking Tomcat will achieve. I rather not spend time trying to boost Tomcat, unless I absolutely have to. -Original Message- From: Peter Lin [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 9:28 AM To: Tomcat Users List Subject: Re: Tomcat Scalability one more note. Persistence is the only effective tool for high performance! No amount of money or talent can beat persistence when it comes to making sure your website works reliably and responds within a set time. peter --- Tim Funk [EMAIL PROTECTED] wrote: Scability/Perfomance/Memory was talked about many times in the past. I am still digging up good threads/sites with respect to the FAQ, but here is what I have so far, each page has links to the appropriate discussion thread in the tomcat-user lists. Performace: http://tomcatfaq.sourceforge.net/performance.html Memory: http://tomcatfaq.sourceforge.net/memory.html Monitoring: http://tomcatfaq.sourceforge.net/monitoring.html -Tim Jon Roberts wrote: But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability
On Mon, Mar 03, 2003 at 11:32:07PM -0600, Haytham Samad wrote: I have searched in the mail archive and did not find a comprehansive answer to the settings one needs to look for to make sure Tomcat scales with an increasing number of users. You'll probably get more milage out of performance-tuning your app than out of tweaking tomcat. I do remember one comment that indicated that using it with Apache can result in significant performance gains. Obviously, the more static files you're serving, the more payoff you'll get from adding Apache for serving them. But running Tomcat side-by-side with apache is a well-explored problem domain, so it shouldn't be that much hassle. You might want to check the conversations on theserverside.com, jguru, and similar sites. Having said all of the above, if you do start playing with performance enhancements (for your app or anything else), make sure you do it right; get some good books on performance/optimizing, read up on it. The key points are: 1) Don't. (Until you know you have a performance problem; get it running, get it running right, THEN worry about getting it running fast). Early optimization is the root of much evil (to quote Donald Knuth). 2) Measure performance - you must start measuring before you do ANYTHING else, or you're just going to spin your wheels doing stupid stuff. If any optimization does not significantly improve measurable performance, back it out (don't clutter your object model or your code with irrelevant kludges). 3) Profile - once you've started measuring overall performance, measure detailed performance to figure out where you can improve things. Don't follow the profiling blindly, though; algorithmic optimization is usually a much better bet than spot optimization. 4) OPB is usually the best optimization strategy (Other Peoples' Brains). Sometimes this involves using a better JVM (I've heard claims for specialty JVMs being up to 30 times as fast) or using commercial optimizers like JProbe, OptimizeIt, etc, or the Sun hotspot optimizing JVM, or better implementations (database drivers are a particularly ripe area for this). 5) Think. Step back and use your judgement every now and then. A couple of anecdotes I've heard: One, the guy spent a day or two optimizing a sort - and then realized that the data set that would be sorted would NEVER be more than a hundred or so elements. Another, they did it all right - measured, profiled, figured out where the hotspot was (where the application was spending 90% of its time) spent a good solid chunk of time optimizing it. Then they realized they were optimizing the wait loop. Steven J. Owens [EMAIL PROTECTED] I'm going to make broad, sweeping generalizations and strong, declarative statements, because otherwise I'll be here all night and this document will be four times longer and much less fun to read. Take it all with a grain of salt. - Me at http://darksleep.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability
Haytham Samad wrote: Anything on can do to set Tomcat up to scale? I am running Tomcat as a service on Win 2K. You could start by running it on Linux instead to save all that memory and processor power that Windows consumes :) But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability
it's going to be hard to summarize tuning in a paragraph or even a few pages. If there aren't any existing weblogs to tell you the amount of traffic it will get, you're only good solution is to implement logging and monitoring. then everyday look at how the site is performing, graph the results for each day, week, and month. look at usage patterns and then modify the number of processors or heap settings appropriately. peter --- Haytham Samad [EMAIL PROTECTED] wrote: I have searched in the mail archive and did not find a comprehansive answer to the settings one needs to look for to make sure Tomcat scales with an increasing number of users. I have read about the tweaks that can be made to the JVM to make the GC work more efficiently and allocating enough memory for the JVM. Anything on can do to set Tomcat up to scale? If someone can provide a comprehensive list on this here, that would be great. I am currently working on stress testing an application I have deployed on Tomcat and did some tweaks to the JVM and to Tomcat but could not find a good reference to tell me if what I am doing is right or wrong. Settings for min/max Processors and Accept count? I am running Tomcat as a service on Win 2K. Any performance considerations or work I can do to it when running as a service? Thanks for taking the time, Haytham - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability
There are a lot of companies using Tomcat in production and some of them are large sites that get 1 million+ page views a day. Just because there are a lot of calls, it doesn't necessarily mean it's a problem. scaling a website to handle millions of hits a day takes time and thorough testing. If you don't test your webapp under varying loads and settings, you're not going to know how it will scale. hopefully when the book comes out, it will answer most of these questions. peter --- Jon Roberts [EMAIL PROTECTED] wrote: Haytham Samad wrote: Anything on can do to set Tomcat up to scale? I am running Tomcat as a service on Win 2K. You could start by running it on Linux instead to save all that memory and processor power that Windows consumes :) But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability
Scability/Perfomance/Memory was talked about many times in the past. I am still digging up good threads/sites with respect to the FAQ, but here is what I have so far, each page has links to the appropriate discussion thread in the tomcat-user lists. Performace: http://tomcatfaq.sourceforge.net/performance.html Memory: http://tomcatfaq.sourceforge.net/memory.html Monitoring: http://tomcatfaq.sourceforge.net/monitoring.html -Tim Jon Roberts wrote: But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Tomcat Scalability
Hi, I would really like to back up Peter's point that you can't just pick up a book or web site with magic settings. At best, you will find general guidelines that may or may not work for your system. The importance of establishing performance requirement and constantly testing to ensure the requirements are meant cannot be overstated. Document your requirement, your stress tests, and the results of every test run you do. Document what parameters you change between runs, and the effect of the change. If you want to do this right, it's a long, laborious process that can be very application-specific. If you'd like, at the end you can publish a paper or a web site with your findings, and I'm sure it'll get a lot of traffic ;) Yoav Shapira Millennium ChemInformatics -Original Message- From: Tim Funk [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 8:15 AM To: Tomcat Users List Subject: Re: Tomcat Scalability Scability/Perfomance/Memory was talked about many times in the past. I am still digging up good threads/sites with respect to the FAQ, but here is what I have so far, each page has links to the appropriate discussion thread in the tomcat-user lists. Performace: http://tomcatfaq.sourceforge.net/performance.html Memory: http://tomcatfaq.sourceforge.net/memory.html Monitoring: http://tomcatfaq.sourceforge.net/monitoring.html -Tim Jon Roberts wrote: But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability
one more note. Persistence is the only effective tool for high performance! No amount of money or talent can beat persistence when it comes to making sure your website works reliably and responds within a set time. peter --- Tim Funk [EMAIL PROTECTED] wrote: Scability/Perfomance/Memory was talked about many times in the past. I am still digging up good threads/sites with respect to the FAQ, but here is what I have so far, each page has links to the appropriate discussion thread in the tomcat-user lists. Performace: http://tomcatfaq.sourceforge.net/performance.html Memory: http://tomcatfaq.sourceforge.net/memory.html Monitoring: http://tomcatfaq.sourceforge.net/monitoring.html -Tim Jon Roberts wrote: But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Tomcat Scalability
The guideline I use is... Prioritize Use-Cases based on R/W, Frequency Try to optimize the the most frequent Use-Cases Test/Profile you app; often this leads to the following, Optimize database queries since I often find this to be the bottleneck. - Cache objects if you can in memory to avoid DB Queries - Add proper indexes to queries - Do more work within the database if you can - Batch TXNs Use less Java objects,right collection types, algorithms. I wonder how much of a performance boost tweaking Tomcat will achieve. I rather not spend time trying to boost Tomcat, unless I absolutely have to. -Original Message- From: Peter Lin [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 9:28 AM To: Tomcat Users List Subject: Re: Tomcat Scalability one more note. Persistence is the only effective tool for high performance! No amount of money or talent can beat persistence when it comes to making sure your website works reliably and responds within a set time. peter --- Tim Funk [EMAIL PROTECTED] wrote: Scability/Perfomance/Memory was talked about many times in the past. I am still digging up good threads/sites with respect to the FAQ, but here is what I have so far, each page has links to the appropriate discussion thread in the tomcat-user lists. Performace: http://tomcatfaq.sourceforge.net/performance.html Memory: http://tomcatfaq.sourceforge.net/memory.html Monitoring: http://tomcatfaq.sourceforge.net/monitoring.html -Tim Jon Roberts wrote: But seriously, I'm interested in hearing how Tomcat can scale, too. It seems like there is an awful lot loaded into memory when it's launched, and all my stack traces produce an impressively long chain of method calls: can this be mitigated? Jon Roberts www.mentata.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Tomcat Scalability
I have searched in the mail archive and did not find a comprehansive answer to the settings one needs to look for to make sure Tomcat scales with an increasing number of users. I have read about the tweaks that can be made to the JVM to make the GC work more efficiently and allocating enough memory for the JVM. Anything on can do to set Tomcat up to scale? If someone can provide a comprehensive list on this here, that would be great. I am currently working on stress testing an application I have deployed on Tomcat and did some tweaks to the JVM and to Tomcat but could not find a good reference to tell me if what I am doing is right or wrong. Settings for min/max Processors and Accept count? I am running Tomcat as a service on Win 2K. Any performance considerations or work I can do to it when running as a service? Thanks for taking the time, Haytham - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tomcat Scalability - Long
I have the following in production: Tomcat 4.1, JDK 1.3.1, and MySQL on a Dual CPU Sun 250 app server and Apache using mod_jk 1.2 on a separate server. We are now getting 4 weeks continuous uptime. I stop and restart Tomcat once each month because the minimum memory the java heap uses over time increases. This is on a site handling 30k Tomcat requests per day. With peak loads of 5k-6k Tomcat requests per hour. When scaling Tomcat there are many issues to address when tuning performance. I would suggest learning more about how the JVM does garbage collection and test different Java startup args related to jvm stack size, etc. Try starting Tomcat with the java arg -verbose:gc, this will collect GC data which can help you when tuning the JVM memory usage. You might also want to profile your applicaiton using OptimizeIt or JProbe to see if it is the source of the problem. And of course the performance tuning should be done on test servers which are as close as possible to your production environment and with a load that simulates your site usage. Consider upgrading to Tomcat 4.1. Especially if your site uses JSP. Jasper 2 which comes with Tocmat 4.1 significantly improves performance of JSP. One final note, I would not set reloadable=true on a production system. That adds alot of overhead. The reloadable option is really there only to make development easier. Regards, Glenn Brandon Cruz wrote: Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 ---About our Application--- Our Application is a content management tool that reads and writes to the MySQL Database and reads and writes files. All the pages within this application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. ---What we are seeing--- Tomcat needs to be restarted every few days. If we don't restart it, it seems tomcat eventually locks up and does not respond at all. No errors or anything are reported, it just will not respond. Apache continues to work during this time and all static HTML pages are accessible. CPU - The processor usage seems to slowly increase as time goes on. After about one day, it seems one java process uses 30% of available CPU or more, depending on whether users are performing operations or not. When nobody is doing anything, the processer still seems to be sitting around 30% until tomcat is restarted. This seems to cap after three to five days and not increase too much more. RAM - This slowly increases and never stops increasing. We do not have any special parameters set for the VM when it starts, but this does not seem to matter. The RAM gets up to about 135 MB after four or five days, but would continue to grow if tomcat were not allowed. Can anyone explain this behavior, talk about the scalability of Tomcat, or provide any similar working solutions that perform better than this? Is it normal, should we just throw more hardware at it? Are there configuration parameters that can be used to increase performance, such as set reloadable=false in all contexts? Would we get better performance if we upgraded to 4.x, or would that just be more work for little improvement? -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
Re: Tomcat Scalability - Long
I would say Tomcat 4.1.x probably would be good for you mainly if you uses lots of Taglibs, if they actually will work on it. Btw, I'm still using 4.0.x... how everybody is doing with 4.1.x? I heard is too much buggy for production right now. On Fri, 2002-10-25 at 12:20, Glenn Nielsen wrote: I have the following in production: Tomcat 4.1, JDK 1.3.1, and MySQL on a Dual CPU Sun 250 app server and Apache using mod_jk 1.2 on a separate server. We are now getting 4 weeks continuous uptime. I stop and restart Tomcat once each month because the minimum memory the java heap uses over time increases. This is on a site handling 30k Tomcat requests per day. With peak loads of 5k-6k Tomcat requests per hour. When scaling Tomcat there are many issues to address when tuning performance. I would suggest learning more about how the JVM does garbage collection and test different Java startup args related to jvm stack size, etc. Try starting Tomcat with the java arg -verbose:gc, this will collect GC data which can help you when tuning the JVM memory usage. You might also want to profile your applicaiton using OptimizeIt or JProbe to see if it is the source of the problem. And of course the performance tuning should be done on test servers which are as close as possible to your production environment and with a load that simulates your site usage. Consider upgrading to Tomcat 4.1. Especially if your site uses JSP. Jasper 2 which comes with Tocmat 4.1 significantly improves performance of JSP. One final note, I would not set reloadable=true on a production system. That adds alot of overhead. The reloadable option is really there only to make development easier. Regards, Glenn Brandon Cruz wrote: Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 ---About our Application--- Our Application is a content management tool that reads and writes to the MySQL Database and reads and writes files. All the pages within this application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. ---What we are seeing--- Tomcat needs to be restarted every few days. If we don't restart it, it seems tomcat eventually locks up and does not respond at all. No errors or anything are reported, it just will not respond. Apache continues to work during this time and all static HTML pages are accessible. CPU - The processor usage seems to slowly increase as time goes on. After about one day, it seems one java process uses 30% of available CPU or more, depending on whether users are performing operations or not. When nobody is doing anything, the processer still seems to be sitting around 30% until tomcat is restarted. This seems to cap after three to five days and not increase too much more. RAM - This slowly increases and never stops increasing. We do not have any special parameters set for the VM when it starts, but this does not seem to matter. The RAM gets up to about 135 MB after four or five days, but would continue to grow if tomcat were not allowed. Can anyone explain this behavior, talk about the scalability of Tomcat, or provide any similar working solutions that perform better than this? Is it normal, should we just throw more hardware at it? Are there configuration parameters that can be used to increase performance, such as set reloadable=false in all contexts? Would we get better performance if we upgraded to 4.x, or would that just be more work for little improvement? -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- Felipe Schnack Analista de Sistemas [EMAIL PROTECTED] Cel.: (51)91287530 Linux Counter #281893 Faculdade Ritter dos Reis www.ritterdosreis.br [EMAIL PROTECTED] Fone/Fax.: (51)32303328 -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
4.1.x In Production [Was: Re: Tomcat Scalability - Long]
Hi, I would say Tomcat 4.1.x probably would be good for you mainly if you uses lots of Taglibs, if they actually will work on it. Btw, I'm still using 4.0.x... how everybody is doing with 4.1.x? I heard is too much buggy for production right now. We're using 4.1.10-LE and 4.1.12-LE in production. It's been good and stable, except for one bug, but it's an annoying one: something in our HTTP headers trips the 32K buffer size limit, and so we get an ArrayIndexOutOfBounds exception from one of the internal Coyote classes sometimes. The good news is that if you look closely at the test milestone from yesterday, 4.1.13, there's an item addressing the above ;) Buffer size increased to 48K. I downloaded and setup a couple of 4.1.13 test servers yesterday and I'm having our QA team run some tests against them to attempt to duplicate the exception above. So far, so good, no exception. I'd be interested to hear if other people have seen the above exception when using 4.1.x. Yoav Shapira Millennium ChemInformatics This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
Re: Tomcat Scalability - Long
I'm using Tomcat 4.1.12 on a production site with more than 150 clients and it looks like to me is better that 4.0.x. On 25 Oct 2002 11:42:14 -0200, Felipe Schnack [EMAIL PROTECTED] escreveu : De: Felipe Schnack [EMAIL PROTECTED] Data: 25 Oct 2002 11:42:14 -0200 Para: Tomcat Users List [EMAIL PROTECTED] Assunto: Re: Tomcat Scalability - Long I would say Tomcat 4.1.x probably would be good for you mainly if you uses lots of Taglibs, if they actually will work on it. Btw, I'm still using 4.0.x... how everybody is doing with 4.1.x? I heard is too much buggy for production right now. On Fri, 2002-10-25 at 12:20, Glenn Nielsen wrote: I have the following in production: Tomcat 4.1, JDK 1.3.1, and MySQL on a Dual CPU Sun 250 app server and Apache using mod_jk 1.2 on a separate server. We are now getting 4 weeks continuous uptime. I stop and restart Tomcat once each month because the minimum memory the java heap uses over time increases. This is on a site handling 30k Tomcat requests per day. With peak loads of 5k-6k Tomcat requests per hour. When scaling Tomcat there are many issues to address when tuning performance. I would suggest learning more about how the JVM does garbage collection and test different Java startup args related to jvm stack size, etc. Try starting Tomcat with the java arg -verbose:gc, this will collect GC data which can help you when tuning the JVM memory usage. You might also want to profile your applicaiton using OptimizeIt or JProbe to see if it is the source of the problem. And of course the performance tuning should be done on test servers which are as close as possible to your production environment and with a load that simulates your site usage. Consider upgrading to Tomcat 4.1. Especially if your site uses JSP. Jasper 2 which comes with Tocmat 4.1 significantly improves performance of JSP. One final note, I would not set reloadable=true on a production system. That adds alot of overhead. The reloadable option is really there only to make development easier. Regards, Glenn Brandon Cruz wrote: Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 ---About our Application--- Our Application is a content management tool that reads and writes to the MySQL Database and reads and writes files. All the pages within this application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. ---What we are seeing--- Tomcat needs to be restarted every few days. If we don't restart it, it seems tomcat eventually locks up and does not respond at all. No errors or anything are reported, it just will not respond. Apache continues to work during this time and all static HTML pages are accessible. CPU - The processor usage seems to slowly increase as time goes on. After about one day, it seems one java process uses 30% of available CPU or more, depending on whether users are performing operations or not. When nobody is doing anything, the processer still seems to be sitting around 30% until tomcat is restarted. This seems to cap after three to five days and not increase too much more. RAM - This slowly increases and never stops increasing. We do not have any special parameters set for the VM when it starts, but this does not seem to matter. The RAM gets up to about 135 MB after four or five days, but would continue to grow if tomcat were not allowed. Can anyone explain this behavior, talk about the scalability of Tomcat, or provide any similar working solutions that perform better than this? Is it normal, should we just throw more hardware at it? Are there configuration parameters that can be used to increase performance, such as set reloadable=false in all contexts? Would we get better performance if we upgraded to 4.x, or would that just be more work for little improvement? -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- Felipe Schnack Analista de Sistemas
RE: Tomcat Scalability - Long
Hi, Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper What are you looking for by solid information? ;) Here are some details about one of our environments: An 18-CPU Sun Ultra Enterprise-class server, 4GB RAM on the machine. About 20 tomcat instances, all 4.x. Various JVM sizes from very small to 1GB. Various amounts of concurrent users, but the biggest JVM does support hundreds of concurrent users. Pretty much vanilla tomcat configuration, except increased (100) number of min and max processors. We hardly ever have to restart due to emergencies. We restart monthly just out of habit and because no app, no server is perfect, and we want to be safe. Does that answer your question? I'd be surprised if it did, because our apps are likely to be very different, and thus present different stress characteristics to the server and the underlying JVM. Do you have load tests in place that simulate user action over a few days? Tests that you can run in a test environment that's a copy of production? Tomcat 3.2.4 - contexts *are* reloadable right now I would update tomcat to the latest stable release. There have been many performance improvements and bug fixes. Stability and scalability should both be improved, all else being equal. application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. There are not huge numbers. Tomcat needs to be restarted every few days. If we don't restart it, it seems tomcat eventually locks up and does not respond at all. No errors or anything are reported, it just will not respond. Apache continues to work during this time and all static HTML pages are accessible. Perhaps it would be worth your while to turn on more tomcat internal logging, if you haven't done so already. I don't know how to do it in tomcat 3.x, but in 4.x you can get ample information about tomcat's internal processes by increasing the logging levels for certain components. Have you tried using OS-level tools to look for thread locks? I think JDK 1.4 also have something (ctrl-break or something like that, when running from a console) that will show you deadlocks. RAM - This slowly increases and never stops increasing. We do not have any special parameters set for the VM when it starts, but this does not seem to matter. The RAM gets up to about 135 MB after four or five days, but would continue to grow if tomcat were not allowed. What's your -Xmx setting, if any? The JVM by default will only allocate 64MB on the heap, plus a bit extra for overhead. People have complained in the past the the Linux top and ps outputs regarding memory size are confusing. normal, should we just throw more hardware at it? Are there configuration parameters that can be used to increase performance, such as set reloadable=false in all contexts? Would we get better performance if we upgraded to 4.x, or would that just be more work for little improvement? Hardware can't hurt ;) But your load doesn't seem that high. I would say upgrade to the latest tomcat and JVM, if that doesn't pose a problem for you. If your app is to the servlet spec, hopefully you don't have too much work in order to upgrade. Turn off reloadable=true unless you need it. Play with the number of request processing threads. But try to do all this after you develop realistic load tests so that you can test and compare each configuration, and find the bounds for each one... Yoav Shapira Millennium ChemInformatics This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
RE: Tomcat Scalability - Long
We have a similar hardware setup (PIII 1GHz 512M) but running Tomcat 4.0.4 on Win2k/IIS and accessing a DB2 database on a separate iSeries server. The system is used by our sales reps in the US and Canada (about 30) over a VPN, so it can see activity at any time. It never really gets hammered but traffic seems to come in spurts with the highest load I have seen of about 5 simultaneous users and the longest session (although we don't use session objects) of about 45 minutes. Keep in mind that I have never actually monitored the traffic, just made mental notes as I was reviewing the log files. So far the only time we have had to restart the machine is to install another MS security patch. The longest continual uptime has been a little over 19 days (the server has only been in production about 10 weeks) and the memory used by Tomcat seems to hover right around 24M. Response time is always in the sub second range, except for a few database queries that seem to take a little longer (still need to do some SQL tuning). I don't know if you can call this solid information, but so far I have not seen anything to worry about scalability wise. -Original Message- From: Brandon Cruz [mailto:bcruz;norvax.com] Sent: Thursday, October 24, 2002 3:36 PM To: Tomcat Users List Subject: Tomcat Scalability - Long Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 ---About our Application--- Our Application is a content management tool that reads and writes to the MySQL Database and reads and writes files. All the pages within this application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. ---What we are seeing--- Tomcat needs to be restarted every few days. If we don't restart it, it seems tomcat eventually locks up and does not respond at all. No errors or anything are reported, it just will not respond. Apache continues to work during this time and all static HTML pages are accessible. CPU - The processor usage seems to slowly increase as time goes on. After about one day, it seems one java process uses 30% of available CPU or more, depending on whether users are performing operations or not. When nobody is doing anything, the processer still seems to be sitting around 30% until tomcat is restarted. This seems to cap after three to five days and not increase too much more. RAM - This slowly increases and never stops increasing. We do not have any special parameters set for the VM when it starts, but this does not seem to matter. The RAM gets up to about 135 MB after four or five days, but would continue to grow if tomcat were not allowed. Can anyone explain this behavior, talk about the scalability of Tomcat, or provide any similar working solutions that perform better than this? Is it normal, should we just throw more hardware at it? Are there configuration parameters that can be used to increase performance, such as set reloadable=false in all contexts? Would we get better performance if we upgraded to 4.x, or would that just be more work for little improvement? -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
Re: Tomcat Scalability - Long
Brandon Cruz wrote: Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. Try upgrading to either: - Tomcat 3.3.1 (less painful) - Tomcat 4.1.12 (more time consuming, but highly beneficial if your site is heavy on JSPs) Remy -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
RE: Tomcat Scalability - Long
We host 15 separate Tomcat instances (3.1) on a single machine. The apps use MySQL. The machine is dual-P3 1GHz, 2GB RAM. Red Hat 7.2, Apache 1.3.26. The connector is mod_jserv. Not sure which JDK, probably 1.3. The usage is high, all of the apps are graphics manipulation apps serving users globally (Pacific Rim, North America, Europe), 24/7. The apps require frequent callouts to third party apps like Adobe Distiller using standard command-line calls (no API or other integration). Uptime is 139 days, load rarely goes over 50%. I did restart all of the Tomcats last week, but that was due to an application patch. Prior to that, they hadn't been restarted in several months, and I don't plan to restart them for a couple more, when the next patch is released. Knock on wood, perhaps we've been lucky, but I think our situation is pretty normal, and definitely what I would expect in a UNIX environment. John -Original Message- From: Brandon Cruz [mailto:bcruz;norvax.com] Sent: Thursday, October 24, 2002 3:36 PM To: Tomcat Users List Subject: Tomcat Scalability - Long Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 ---About our Application--- Our Application is a content management tool that reads and writes to the MySQL Database and reads and writes files. All the pages within this application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
Tomcat Scalability - Long
Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 ---About our Application--- Our Application is a content management tool that reads and writes to the MySQL Database and reads and writes files. All the pages within this application are served by Tomcat 3.2.4. About 80-120 people per day log into this application and spend anywhere from 10 minutes to one hour working on the application. At any given time there are between 15 and 50 active database connections. ---What we are seeing--- Tomcat needs to be restarted every few days. If we don't restart it, it seems tomcat eventually locks up and does not respond at all. No errors or anything are reported, it just will not respond. Apache continues to work during this time and all static HTML pages are accessible. CPU - The processor usage seems to slowly increase as time goes on. After about one day, it seems one java process uses 30% of available CPU or more, depending on whether users are performing operations or not. When nobody is doing anything, the processer still seems to be sitting around 30% until tomcat is restarted. This seems to cap after three to five days and not increase too much more. RAM - This slowly increases and never stops increasing. We do not have any special parameters set for the VM when it starts, but this does not seem to matter. The RAM gets up to about 135 MB after four or five days, but would continue to grow if tomcat were not allowed. Can anyone explain this behavior, talk about the scalability of Tomcat, or provide any similar working solutions that perform better than this? Is it normal, should we just throw more hardware at it? Are there configuration parameters that can be used to increase performance, such as set reloadable=false in all contexts? Would we get better performance if we upgraded to 4.x, or would that just be more work for little improvement? -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
RE: Tomcat Scalability - Long
If your kernel is not in the 2.4.18-2.4.19 range, you should update the kernel. 7.1 is pretty old. It shipped with a very early 2.4 series kernel. -Original Message- From: Brandon Cruz [mailto:bcruz;norvax.com] Sent: 24 October, 2002 1:36 PM To: Tomcat Users List Subject: Tomcat Scalability - Long Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
Re: Tomcat Scalability - Long
Hi. I am still on kernel 2.4.2 and it seems okay. May I ask why we need to upgrade to 2.4.19 ? Sexton, George wrote: If your kernel is not in the 2.4.18-2.4.19 range, you should update the kernel. 7.1 is pretty old. It shipped with a very early 2.4 series kernel. -Original Message- From: Brandon Cruz [mailto:bcruz;norvax.com] Sent: 24 October, 2002 1:36 PM To: Tomcat Users List Subject: Tomcat Scalability - Long Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
RE: Tomcat Scalability - Long
The consensus in the Linux community is the 2.4 series didn't start to really stabilize until 2.4.18. I won't even mention the dozen plus security issues that have been found in the kernel since that version. -Original Message- From: [EMAIL PROTECTED] [mailto:arthur;westnet.com]On Behalf Of [EMAIL PROTECTED] Sent: 24 October, 2002 2:06 AM To: Tomcat Users List Subject: Re: Tomcat Scalability - Long Hi. I am still on kernel 2.4.2 and it seems okay. May I ask why we need to upgrade to 2.4.19 ? Sexton, George wrote: If your kernel is not in the 2.4.18-2.4.19 range, you should update the kernel. 7.1 is pretty old. It shipped with a very early 2.4 series kernel. -Original Message- From: Brandon Cruz [mailto:bcruz;norvax.com] Sent: 24 October, 2002 1:36 PM To: Tomcat Users List Subject: Tomcat Scalability - Long Does anyone have any solid information about the scalability of Tomcat? It seems very limiting to me, but that is hopefully due to improper configuration. Here is our situation and what seems to be happening under a small amount of stress. ---About our Environment--- PIII 1.0Ghz 512 Meg Ram Linux RedHat 7.1 MySQL Database Apache 1.3.x mod_jk - logging turned all the way down Tomcat 3.2.4 - contexts *are* reloadable right now SUN JDK 1.3.1_01 -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:tomcat-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-user-help;jakarta.apache.org
Tomcat scalability question
Hello all -- I have a configuration problem on my setup of Tomcat (v 4.0.3). I am managing this machine for my university's CS department, so there are issues of security that must be followed, namely that students should not be able to view each others source code (== cheating). We are using the security manager to enforce this (so one context cannot open files in another). Less than 5% of the pages on the system are static, so we are using Tomcat in standalone mode on a Linux system. We have made contexts for each user so that we can override the location of home directories, log files, etc. Note that students do not have logins on this machine; their Tomcat-related files are exported to student use machines. See the bottom of this email for pertinent config info. The server starts up correctly (./startup.sh -security) and deploys and serves the webapps fine. But here's the problem: when a user decides to make a new jsp file, Tomcat cannot compile or process that new file. The old files in the directory still display properly; Tomcat gives a Permission Denied error citing the working directory version of the new file in question. - message /usr/local/jakarta-tomcat-4.0.3/work/localhost/user/tomcat/webapps/jsp/graderFiles/graderC$jsp.java (Permission denied) Here's some site-specific config info that will be useful. Tomcat version: 4.0.3 Standalone from binaries There are about 250 contexts that get loaded when the server starts. A `ps aux` listing shows about 500 processes associated with Tomcat running. The machine is a P3-800 with 512 MB of memory, and does not have any other heavy services running on it, so Tomcat has full run of the box. If you need more info for diagnosis, email me and I will provide it. Does anyone have experience setting up a system along these lines? I realize it's probably an extension of what Tomcat is supposed to be used for with all the different contexts, but there has to be a way! Any help is appreciated. server.xml without comments === Server port=8005 shutdown=SHUTDOWN debug=0 Service name=Tomcat-Standalone Connector className=org.apache.catalina.connector.http.HttpConnector port=8080 minProcessors=5 maxProcessors=75 enableLookups=true redirectPort=8443 acceptCount=10 debug=0 connectionTimeout=6/ Engine name=Standalone defaultHost=localhost debug=0 Logger className=org.apache.catalina.logger.FileLogger prefix=catalina_log. suffix=.txt timestamp=true/ Host name=localhost debug=0 appBase=webapps unpackWARs=true !-- user1 -- Context path=/user1 docBase=/tomcat/user1 debug=0 reloadable=true crossContext=false /Context !-- user2 -- Context path=/user2 docBase=/tomcat/user2 debug=0 reloadable=true crossContext=false /Context /Host /Engine /Service /Server === Thanks in advance for any help you can provide. Apologies for the lengthy email. Pat Schaider doctor {at} wt {dot} net -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: Tomcat scalability question
Hi, Just a suggestion. Why not use Apache to take care of all the security? Ie have home directories for each user and only the user has access to his/her home directory, then apache can use a standard like http://localhost/~user and everything is sepearate. It would be a lot easier to Administer. When you delete or add new user they just have a webapps folder and it goes from there. Ie user/ webapps/ context1/ index.jsp WEB-INF/ classes/ home.class lib/ tools.jar web.xml context2/ index.jsp WEB-INF/ classes/ cool.class lib/ goodstuff.jar web.xml I don't know if that would work. It might need to to be reorganised. But a system like this would be a lot better than administering a 500+ entry xml file. Oh well some other people will have more of an idea if this is possible. I know Apache can have the ~user bit and it just maps to home directories under /home/usr/username. Nicholas Orr -Original Message- From: Pat Schaider [mailto:[EMAIL PROTECTED]] Sent: Tuesday, 10 September 2002 4:08 PM To: [EMAIL PROTECTED] Subject: Tomcat scalability question Hello all -- I have a configuration problem on my setup of Tomcat (v 4.0.3). I am managing this machine for my university's CS department, so there are issues of security that must be followed, namely that students should not be able to view each others source code (== cheating). We are using the security manager to enforce this (so one context cannot open files in another). Less than 5% of the pages on the system are static, so we are using Tomcat in standalone mode on a Linux system. We have made contexts for each user so that we can override the location of home directories, log files, etc. Note that students do not have logins on this machine; their Tomcat-related files are exported to student use machines. See the bottom of this email for pertinent config info. The server starts up correctly (./startup.sh -security) and deploys and serves the webapps fine. But here's the problem: when a user decides to make a new jsp file, Tomcat cannot compile or process that new file. The old files in the directory still display properly; Tomcat gives a Permission Denied error citing the working directory version of the new file in question. - message /usr/local/jakarta-tomcat-4.0.3/work/localhost/user/tomcat/webapps/jsp/grade rFiles/graderC$jsp.java (Permission denied) Here's some site-specific config info that will be useful. Tomcat version: 4.0.3 Standalone from binaries There are about 250 contexts that get loaded when the server starts. A `ps aux` listing shows about 500 processes associated with Tomcat running. The machine is a P3-800 with 512 MB of memory, and does not have any other heavy services running on it, so Tomcat has full run of the box. If you need more info for diagnosis, email me and I will provide it. Does anyone have experience setting up a system along these lines? I realize it's probably an extension of what Tomcat is supposed to be used for with all the different contexts, but there has to be a way! Any help is appreciated. server.xml without comments === Server port=8005 shutdown=SHUTDOWN debug=0 Service name=Tomcat-Standalone Connector className=org.apache.catalina.connector.http.HttpConnector port=8080 minProcessors=5 maxProcessors=75 enableLookups=true redirectPort=8443 acceptCount=10 debug=0 connectionTimeout=6/ Engine name=Standalone defaultHost=localhost debug=0 Logger className=org.apache.catalina.logger.FileLogger prefix=catalina_log. suffix=.txt timestamp=true/ Host name=localhost debug=0 appBase=webapps unpackWARs=true !-- user1 -- Context path=/user1 docBase=/tomcat/user1 debug=0 reloadable=true crossContext=false /Context !-- user2 -- Context path=/user2 docBase=/tomcat/user2 debug=0 reloadable=true crossContext=false /Context /Host /Engine /Service /Server === Thanks in advance for any help you can provide. Apologies for the lengthy email. Pat Schaider doctor {at} wt {dot} net -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] ** The information contained in this e-mail is confidential and is intended only for the use of the addressee(s). If you receive this e-mail in error, any use, distribution or copying of this e-mail is not permitted. You are requested to forward unwanted e-mail and address any problems to the MIM Holdings Limited Support Centre. For general enquires: ++61 7 3833 8000 Support Centre e-mail: [EMAIL PROTECTED] Support Centre phone: Australia 1800500646
Re: Tomcat scalability question
The permission denied can be generated one of two ways. First, the catalina.policy file must grant the correct FilePermission. Even if the correct FilePermission is granted in catalina.policy, you still have to comply with normal unix file ownership/permissions. If it is a catalina.policy configuration issue try defining the following property when starting tomcat: -Djava.security.debug=access,failure Then review the logs for the failed file permission and look at what CodeBase is identified as failing for the FilePermission. Regards, Glenn Presenting Tomcat Server and Application Security session at ApacheCon 2002, Las Vegas, NV Nov 18-21. Pat Schaider wrote: Hello all -- I have a configuration problem on my setup of Tomcat (v 4.0.3). I am managing this machine for my university's CS department, so there are issues of security that must be followed, namely that students should not be able to view each others source code (== cheating). We are using the security manager to enforce this (so one context cannot open files in another). Less than 5% of the pages on the system are static, so we are using Tomcat in standalone mode on a Linux system. We have made contexts for each user so that we can override the location of home directories, log files, etc. Note that students do not have logins on this machine; their Tomcat-related files are exported to student use machines. See the bottom of this email for pertinent config info. The server starts up correctly (./startup.sh -security) and deploys and serves the webapps fine. But here's the problem: when a user decides to make a new jsp file, Tomcat cannot compile or process that new file. The old files in the directory still display properly; Tomcat gives a Permission Denied error citing the working directory version of the new file in question. - message /usr/local/jakarta-tomcat-4.0.3/work/localhost/user/tomcat/webapps/jsp/graderFiles/graderC$jsp.java (Permission denied) Here's some site-specific config info that will be useful. Tomcat version: 4.0.3 Standalone from binaries There are about 250 contexts that get loaded when the server starts. A `ps aux` listing shows about 500 processes associated with Tomcat running. The machine is a P3-800 with 512 MB of memory, and does not have any other heavy services running on it, so Tomcat has full run of the box. If you need more info for diagnosis, email me and I will provide it. Does anyone have experience setting up a system along these lines? I realize it's probably an extension of what Tomcat is supposed to be used for with all the different contexts, but there has to be a way! Any help is appreciated. server.xml without comments === Server port=8005 shutdown=SHUTDOWN debug=0 Service name=Tomcat-Standalone Connector className=org.apache.catalina.connector.http.HttpConnector port=8080 minProcessors=5 maxProcessors=75 enableLookups=true redirectPort=8443 acceptCount=10 debug=0 connectionTimeout=6/ Engine name=Standalone defaultHost=localhost debug=0 Logger className=org.apache.catalina.logger.FileLogger prefix=catalina_log. suffix=.txt timestamp=true/ Host name=localhost debug=0 appBase=webapps unpackWARs=true !-- user1 -- Context path=/user1 docBase=/tomcat/user1 debug=0 reloadable=true crossContext=false /Context !-- user2 -- Context path=/user2 docBase=/tomcat/user2 debug=0 reloadable=true crossContext=false /Context /Host /Engine /Service /Server === Thanks in advance for any help you can provide. Apologies for the lengthy email. Pat Schaider doctor {at} wt {dot} net -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: Tomcat scalability question
I should clarify. Security in this case means a student should not be able to view the source code of another student. Because we are exporting the files but they still need to be accessible by Tomcat, each user directory is 570 tomcat:user and all files inside are world readable. This allows the files to be secure from the perspective of the filesystems on both the exporting and mounting machines but still be all readable by Tomcat. However, another way a student could look at other files is by using a BufferedReader within a servlet/jsp and simply viewing/saving the contents. Since Tomcat is running as the tomcat user and not them, it has access to the files. This is something that the Tomcat security manager should take care of, enforcing the boundaries between the students' directories that all exist at the same logical level. I don't think Apache can make the distinction between the files that a servlet/jsp is opening in this instance if Tomcat has unrestricted access between all contexts. If I am wrong in this respect, please correct me. I would love a simple solution. (As far as the server.xml goes, I have it all scripted with the data coming from databases, so it's relatively easy to make a version of the file...) Pat Schaider On Mon, 2002-09-09 at 20:19, Nicholas Orr wrote: Hi, Just a suggestion. Why not use Apache to take care of all the security? Ie have home directories for each user and only the user has access to his/her home directory, then apache can use a standard like http://localhost/~user and everything is sepearate. It would be a lot easier to Administer. When you delete or add new user they just have a webapps folder and it goes from there. Ie user/ webapps/ context1/ index.jsp WEB-INF/ classes/ home.class lib/ tools.jar web.xml context2/ index.jsp WEB-INF/ classes/ cool.class lib/ goodstuff.jar web.xml I don't know if that would work. It might need to to be reorganised. But a system like this would be a lot better than administering a 500+ entry xml file. Oh well some other people will have more of an idea if this is possible. I know Apache can have the ~user bit and it just maps to home directories under /home/usr/username. Nicholas Orr -Original Message- From: Pat Schaider [mailto:[EMAIL PROTECTED]] Sent: Tuesday, 10 September 2002 4:08 PM To: [EMAIL PROTECTED] Subject: Tomcat scalability question Hello all -- I have a configuration problem on my setup of Tomcat (v 4.0.3). I am managing this machine for my university's CS department, so there are issues of security that must be followed, namely that students should not be able to view each others source code (== cheating). We are using the security manager to enforce this (so one context cannot open files in another). Less than 5% of the pages on the system are static, so we are using Tomcat in standalone mode on a Linux system. We have made contexts for each user so that we can override the location of home directories, log files, etc. Note that students do not have logins on this machine; their Tomcat-related files are exported to student use machines. See the bottom of this email for pertinent config info. The server starts up correctly (./startup.sh -security) and deploys and serves the webapps fine. But here's the problem: when a user decides to make a new jsp file, Tomcat cannot compile or process that new file. The old files in the directory still display properly; Tomcat gives a Permission Denied error citing the working directory version of the new file in question. - message /usr/local/jakarta-tomcat-4.0.3/work/localhost/user/tomcat/webapps/jsp/grade rFiles/graderC$jsp.java (Permission denied) Here's some site-specific config info that will be useful. Tomcat version: 4.0.3 Standalone from binaries There are about 250 contexts that get loaded when the server starts. A `ps aux` listing shows about 500 processes associated with Tomcat running. The machine is a P3-800 with 512 MB of memory, and does not have any other heavy services running on it, so Tomcat has full run of the box. If you need more info for diagnosis, email me and I will provide it. Does anyone have experience setting up a system along these lines? I realize it's probably an extension of what Tomcat is supposed to be used for with all the different contexts, but there has to be a way! Any help is appreciated. server.xml without comments === Server port=8005 shutdown=SHUTDOWN debug=0 Service name=Tomcat-Standalone Connector className=org.apache.catalina.connector.http.HttpConnector port=8080 minProcessors=5 maxProcessors=75 enableLookups=true redirectPort=8443 acceptCount=10 debug=0
RE: Tomcat scalability question
(As far as the server.xml goes, I have it all scripted with the data coming from databases, so it's relatively easy to make a version of the file...) Oh, well, that's cool then. I'm not a guru at Tomcat I was just trying make a suggestion. But I see your point with Tomcat running as Tomcat user and thus has access to everything. Well hope you get a solution. Nicholas Orr -Original Message- From: Pat Schaider [mailto:[EMAIL PROTECTED]] Sent: Tuesday, 10 September 2002 4:57 PM To: Tomcat Users List Subject: RE: Tomcat scalability question I should clarify. Security in this case means a student should not be able to view the source code of another student. Because we are exporting the files but they still need to be accessible by Tomcat, each user directory is 570 tomcat:user and all files inside are world readable. This allows the files to be secure from the perspective of the filesystems on both the exporting and mounting machines but still be all readable by Tomcat. However, another way a student could look at other files is by using a BufferedReader within a servlet/jsp and simply viewing/saving the contents. Since Tomcat is running as the tomcat user and not them, it has access to the files. This is something that the Tomcat security manager should take care of, enforcing the boundaries between the students' directories that all exist at the same logical level. I don't think Apache can make the distinction between the files that a servlet/jsp is opening in this instance if Tomcat has unrestricted access between all contexts. If I am wrong in this respect, please correct me. I would love a simple solution. (As far as the server.xml goes, I have it all scripted with the data coming from databases, so it's relatively easy to make a version of the file...) Pat Schaider On Mon, 2002-09-09 at 20:19, Nicholas Orr wrote: Hi, Just a suggestion. Why not use Apache to take care of all the security? Ie have home directories for each user and only the user has access to his/her home directory, then apache can use a standard like http://localhost/~user and everything is sepearate. It would be a lot easier to Administer. When you delete or add new user they just have a webapps folder and it goes from there. Ie user/ webapps/ context1/ index.jsp WEB-INF/ classes/ home.class lib/ tools.jar web.xml context2/ index.jsp WEB-INF/ classes/ cool.class lib/ goodstuff.jar web.xml I don't know if that would work. It might need to to be reorganised. But a system like this would be a lot better than administering a 500+ entry xml file. Oh well some other people will have more of an idea if this is possible. I know Apache can have the ~user bit and it just maps to home directories under /home/usr/username. Nicholas Orr -Original Message- From: Pat Schaider [mailto:[EMAIL PROTECTED]] Sent: Tuesday, 10 September 2002 4:08 PM To: [EMAIL PROTECTED] Subject: Tomcat scalability question Hello all -- I have a configuration problem on my setup of Tomcat (v 4.0.3). I am managing this machine for my university's CS department, so there are issues of security that must be followed, namely that students should not be able to view each others source code (== cheating). We are using the security manager to enforce this (so one context cannot open files in another). Less than 5% of the pages on the system are static, so we are using Tomcat in standalone mode on a Linux system. We have made contexts for each user so that we can override the location of home directories, log files, etc. Note that students do not have logins on this machine; their Tomcat-related files are exported to student use machines. See the bottom of this email for pertinent config info. The server starts up correctly (./startup.sh -security) and deploys and serves the webapps fine. But here's the problem: when a user decides to make a new jsp file, Tomcat cannot compile or process that new file. The old files in the directory still display properly; Tomcat gives a Permission Denied error citing the working directory version of the new file in question. - message /usr/local/jakarta-tomcat-4.0.3/work/localhost/user/tomcat/webapps/jsp /grade rFiles/graderC$jsp.java (Permission denied) Here's some site-specific config info that will be useful. Tomcat version: 4.0.3 Standalone from binaries There are about 250 contexts that get loaded when the server starts. A `ps aux` listing shows about 500 processes associated with Tomcat running. The machine is a P3-800 with 512 MB of memory, and does not have any other heavy services running on it, so Tomcat has full run of the box. If you need more info for diagnosis, email me and I will provide