Hello, I'm having the same problem with a big news portal I'm developing (goal.com, and a few of other sites - italian soccer team - that share the same content management), and even if it is developed with .NET, the concept is almost the same.
I don't know how your environment is set up, but u can cache the results for 15 min or even forever, but u can force a cache reload whenever you update a content in the adminstration application. If the frontend is running in another context (or even another server) then the admin site (and u don't have access to the same instance of the CMS), you can call a webservice (or a simplier page) to do this. Simone ------------------------- Simone Chiaretta www.piyosailing.com/S Any sufficiently advanced technology is indistinguishable from magic "Life is short, play hard" > -----Messaggio originale----- > Da: Allistair Crossley [mailto:[EMAIL PROTECTED] > Inviato: giovedì 8 aprile 2004 18.33 > A: LILES, DAVID (CONTRACTOR); [EMAIL PROTECTED] > Oggetto: RE: Tomcat configuration tuning > > > Hey > > Yes our struts uses the tiles plugin also. And the page load > times are as a result of running on the server itself > unfortunately. I am using the JTDS driver which apparently is > one of the fastest SQL Server 2000 implementations for db > connectivity. > > One of the things about our system is that every click the > user makes is a search to the CMS for content that belongs to > that page. This could be considered sub-optimal. For > instance, I could cache results per 15 minutes or something, > but content changes often so I thought I would leave it dynamic. > > I spent some time running JProfiler against the app. The > accumulated CPU and memory seemed to ultimately come down to > these search calls to the CMS especially under load. Per > request I have to instantiate the vendors' bean which is an > interface to the CMS server socket and is responsible for > giving back all the data from the calls. I then simply > package up what I need in data transfer objects and ship them > to the JSPs. The JSPs are highly configurable in terms of > skinning and so on and have calls to the file system to check > if images are present and so on. I think I could cache that > too. In fact looking at timings in the logs shows the page > start to end is sub 1 second, the rest (user click -> page > process start) I think is caught up at the search but even so > that is generally about 0.8s. Pages are taking about 0.1 and > my cached implementation of nav takes 0.06 or so to load. But > overall the pages under load feel like they take about 2 > seconds and also I get the feeling tomcat is recompiling > something it really doesn't need to - that was why I was > interested in the development flag in server.conf and whether > I should turn that to false. > > A fair amount of CPU and memory was going to Log4J also. I > removed a lot of our unnecessary debugging statements and > this too helped. > > I guess it comes down to the CMS load but any tips from > others on the list are so very welcome, > > Cheers, ADC > > -----Original Message----- > From: LILES, DAVID (CONTRACTOR) [mailto:[EMAIL PROTECTED] > Sent: 08 April 2004 17:22 > To: Allistair Crossley > Subject: RE: Tomcat configuration tuning > > > I have seen a couple postings regarding poor performance with > Tomcat recently and thought I'd respond because we are using > IIS5 with Tomcat 5 and SQL 2000 as well. > > We have a Struts site but our difference is that we are using > Tiles for our presentation... haven't really looked into the > performance differences between Tiles and non-Tiles display rates.... > > As for our database connectivity... we are using an > internally developed connection pooling class (no JNDI), but > have recently started migrating to Hibernate. > > It is interesting hearing how long it is taking for the pages > to be displayed considering we are on a similar set-up and > have not noticed this type of problem. We have not made any > special optimization setting changes, we basically did an out > of the box set-up.... > > Is this occurring when running the app locally or on the > server? I would be curious to know what is the resource load > on the box running the app, how is the connectivity > (bandwidth) to the box, has any sort of optimization tools > been run against the code to check for bottle-necks? > > Not sure that I can provide much value technically, but feel > free to ask.... > > -Dave > > > > -----Original Message----- > From: Allistair Crossley [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 08, 2004 11:00 AM > To: Tomcat Users List > Cc: [EMAIL PROTECTED] > Subject: RE: Tomcat configuration tuning > > Hi Matt, > > Welcome to the list from me. It's funny because you have just > listed precisely the same server setup as we are launching > our new tomcat based app to this weekend and I have been > having nightmares about performance. > > We have a system like this; > > > user -> > IIS -> > JK2 ISAPI -> > Tomcat 5.0.19 -> > --> Content Management System Bean > --> SQL Server 2000 > --> SQL Server 2000 via JNDI resource setup > > Our application is built on Struts. > > We found performance to be very poor under a load of 20 users > of 3 iterators of 20 page requests (13 secs per page) avg > pages per secon 1.1!! Looking into it revealed too much XML, > too much database connectivity and too much dynamic rending > on the pages. > > > I came up with a caching strategy for our navigation as well > as removing all XML to database calls instead (you may have > seen my last post) > > Along with other things I have managed 10 pages per seconds > and 1.5 seconds per page under the same load test. I'm still > not entirely happy and wonder if I am missing any > confoguration type stuff to make my app run faster either in > tomcat, jk2, iis and so fourth. I run tomcat as a service > with -Xms128 -Xmx384. > > I would be very interested if you have time to hear of any > useful quick tips you found can optimise via configuration - > maybe even seeing your server.conf and anything else, perhaps > any ideas about code optimisation and also how complex your > system is (db accesses or other system integration). > > What are your page response times under load and so on. > > It's a big ask but you have a very similar hardware setup and > I would like to maximise my use of it. > > Cheers! ADC > > > -----Original Message----- > From: Matt Woodings [mailto:[EMAIL PROTECTED] > Sent: 08 April 2004 16:50 > To: [EMAIL PROTECTED] > Subject: Tomcat configuration tuning > > > Hi guys, > > I am at stage where I have all my various components talking > to one another (Apache http server 2.0.49 -> Mod JK2 -> > Tomcat 4.1.30) and running nicely with each other, but the > loads on the server are increasing rapidly in our production > environment ( ~2000 logins/day and peak concurrency of ~75 > currently ) and I want to get the best possible configuration > for my server. (Dual 1GHz, 1GB Ram, Win 2k, SQL Server + > Web/Apps servers). > > Now, ultimately this is up to me, but I am unsure of a few > relationships and variables used in the configuration files. > The settings I have work, but I want them to be optimal and > more importantly I want to understand them, so any help on > the following would be greatly appreciated. > > 1) server.xml/Connector/bufferSize. Is this allocated for > every users session until it is terminated, or is it a peak > size that could be allocated? > 2) workers2.properties/shm.slots. Does this equate to the > server.xml/Connector/maxProcessors? or are these > fundamentally different? > > I have attached my fully working configuration below for > those who are interested, as I noticed a lot of people in the > archives looking for working examples using JK2. > > Many thanks, > > Matt > > P.S. I am new to the list but I have been using Tomcat for > many years and love it, and if I can help with anyones > queries, from the trivial to complex, I would be only too > happy to do so. > > workers2.properties > [logger] > ############################################################## > #### LOGGER #### > ############################################################## > # Log level. Supported: EMERG, ERROR, INFO, DEBUG > level=ERROR > # Log file. XXX you may be able to change this at runtime, to > # implement rolling. > file=${serverRoot}/logs/jk2_error.log > > [config] > ############################################################## > #### CONFIG #### > ############################################################## > # Location of the workers2.properties file > file=${serverRoot}/conf/workers2.properties > # Set the debug level of the config component > debug=0 > # Set the debug level of the hidden env component > debugEnv=0 > > [shm] ############################################################## > #### SHARED MEMORY SETUP #### > ############################################################## > # Name of the file that will be mmapped to use as shared memory, > # If set to 'anonymous' use the anonymous shered memory > file=${serverRoot}/logs/shm.file # Number of shared memory > slots. Set to the number of child > # processes > slots=378 > # Use process memory instead of shared memory. Useful for single > # child mpm's > useMemory=0 > > [lb:lb_group] > ############################################################## > #### LOAD BALANCER (EVEN IF USED ON ONE MACHINE) #### > ############################################################## > # If set, jk2 won't touch the headers in case of error and will > # let for example Apache present the > # ErrorDocument via mod_alias. > noErrorHeader=1 > # > noWorkerMsg=No workers available > # > noWorkerCode=503 > # > hwBalanceErr= > # If all the workers are in the error state, probably by Tomcat > # refusing any new connections due to the overload, you can set > # the timeout forcing lb to wait that some worker becomes > # available, instead of immediately returning error to the > # client. This is very useful in situations with high peek > # load. The timeout should be set to the maximum application > # call time, but not less then 1 second. > timeout=5000 > # Number of attempts that lb will try on each worker before > # giving up. > attempts=6 > # Time to wait before retrying to see if the worker came out of > # the error state. Default = 60secs > recovery=30 > # Sessions stick to the same worker, 1=true 0=false > stickySession=1 > > [channel.socket:localhost:8009] > ############################################################## > #### CHANNEL SETUP, LINKED TO LOAD BALANCER #### > ############################################################## > # Port where Tomcat is listening. It is automatically extracted > # from the name - you shouldn't have to specify it > explicitely. port=8009 # Remote host. You should use the > name, no need to override it host=127.0.0.1 # If 1, only > requests for existing sessions will be forwarded graceful=0 # > ? keepAlive=0 # Socket timeout for sending and receiving > (0=infinite) timeout=0 # Load balancing factor to use. At > this moment, it'll be set on # the worker, but in future it > should be possible to use lb on > # a channel level. > lb_factor=100 > # loadbalanced groups to which this channel and the associated > # worker will be added, multivalued. You need to set it only if > # you have an advanced setup with multiple clusters. > group=lb_group # Must match the JVM route on tomcat Engine, > for load balancing tomcatId=hsInstance > > [ajp13:localhost:8009] > ############################################################## > #### AJP1.3 WORKER CONFIG #### > ############################################################## > tomcatId=hsInstance > group=lb_group > channel=channel.socket:localhost:8009 > > [uri:/hs/*] > ############################################################## > #### URI MAPPING, WHAT TO SEND TO TOMCAT #### > ############################################################## > group=lb_group > > [status:jk_status] > ############################################################## > #### JK STATUS GROUP #### > ############################################################## > info=Status worker, displays runtime information > > [uri:/jkstatus/*] > ############################################################## > #### JK STATUS CONFIG #### > ############################################################## > info=The Tomcat /jkstatus handler > group=status:jk_status > > > <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> > ------------------------------------------------------- > QAS Ltd. > Developers of QuickAddress Software > <a href="http://www.qas.com">www.qas.com</a> > Registered in England: No 2582055 > Registered in Australia: No 082 851 474 > ------------------------------------------------------- > </FONT> > > > --------------------------------------------------------------------- > 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]