Morning Vadim, I have just tested cocoon with your patch (by the way, can you explain me how to diff between 2 files?). It's a little bit late, and I don't know if I did every- thing right: I shoot only 5 threads against /cocoon/hello.html to test your changes. The load is still high, but it seems to be a other reason now: java.io.Win32FileSystem.getLastModifiedTime() now eats 50% CPU time. org.apache.cocoon.components.source.URLSource.getInfos() org.apache.cocoon.components.source.URLSource.getLastModified() org.apache.cocoon.sitemap.Handler.hasChanged() org.apache.cocoon.sitemap.Manager.getHandler() org.apache.cocoon.sitemap.Manager.invoke() org.apache.cocoon.Cocoon.process() are invokers of this method. I attached the trace file to this mail. I will test it again tomorrow. I have a 14 days trail software, that should be sufficient :). Will catch some sleep now... Cheers Gerhard >-----Ursprungliche Nachricht----- >Von: Vadim Gritsenko [mailto:[EMAIL PROTECTED]] >Gesendet: Thursday, August 23, 2001 1:03 AM >An: [EMAIL PROTECTED] >Betreff: RE: LoadTest > > >Marcus, >Do not use cocoon20b2 - this is really old beta release! >Switch to cocoon_20_branch - that's the RC Berin is talking about. > >Vadim > >> -----Original Message----- >> From: Marcus Crafter [mailto:[EMAIL PROTECTED]] >> Sent: Wednesday, August 22, 2001 6:58 PM >> To: [EMAIL PROTECTED] >> Subject: Re: LoadTest >> >> >> Hi Berin, >> >> Hope all is well mate. Thanks again for your advice. >Please, don't be >> afraid to give out more! :-) >> >> On Wed, 22 Aug 2001, Berin Loritsch wrote: >> >> > Marcus Crafter wrote: >> > > >> > > We had a range of errors: >> > > >> > > o components not found: fixed recently in avalon's >DefaultPool >> > > (also seems to have improved what was before a memory leak) >> > >> > I'm glad to see this is no longer a problem. Let me know if it rears >> > its ugly head again. >> >> Sure will. :-) >> >> > > o decreased performance over time (100 users lasts >about 20 minutes, >> > > 50 users lasts about 40 minutes with our >application, before >> > > performance drops) >> > >> > What is the load (beyond number of users: time between responses, type >> > of resource). >> >> The load actually changed with today's source code. Thanks >to all that >> checked in changes today. Yesterday the load was less on our system >> (averaging between 3 and 6, for 50 and 100 users). >> >> With the changes from today (which have helped dramatically) >> the load is much higher, around 7-14 with the same user counts. >> >> Performance in general is actually much better than before, >even though >> the machine seems to be under more load. >> >> > Probably should use the cocoon_2_0 branch (check the site for >the proper >> > name). >> > That is what is being prepared for production readiness. >> >> Ok, we've switched over to the cocoon20b2 branch. >> >> > Cocoon.xconf provides attributes to allow you to manipulate >> > the size of Component pools for Poolable Components: >> > >> > pool-min // Minimum number of Components in the pool >> > pool-max // Maximum number of Components maintained in the pool >> > pool-grow // Number of Components to add to the pool each >time we run >> > out. >> > >> > The Pool will basically turn into a Factory when the number of >> > Components in >> > the pool exceed pool-max. This is a performance drain. >> >> Ok. Excellent advice. :-) >> >> We pumped up our pool settings and saw an immediate improvement in >> general application performance, especially when testing >directly with >> Tomcat (vs via a ajp13 connector). >> >> I've increased pooling settings on as much components as I >can in our >> cocoon.xconf and sitemap.xmap files (min 32 to max 64 for 50 >> simultaneous users). >> >> There are still several components which are regularly being >> decommissioned in the log files during our tests, that I cannot find >> locations where I can set pooling parameters for. These are: >> >> org.apache.cocoon.components.language.markup.xsp.XSPMarkupLanguage >> org.apache.avalon.excalibur.component.ExcaliburComponentSelector >> >> and all generated xsp classes, eg: >> >> org.apache.cocoon.www.client.common.mask.mask_xsp_xml >> (custom generated xsp class). >> >> Is it possible to set pooling sizes on these components too ? >> >> > Increase your pool sizes and cache sizes. If your JVM is not >set to use >> > all 2 gig of RAM, then it will perform garbage collection more often. >> >> Yep. Have done already, we're running with mx1526 ms1024m, >although I >> missed the MRU settings. I've increased the MRUMemory sizes >today from >> 60m to 200m (for each event cache, stream cache, and the store). >> >> > > Runaway threads ? Could cause such a problem, but >they wouldn't allow >> > > the system to regain itself - or should I not assume this ? >> > >> > I don't think this is a problem. You would see your CPU maxed out. >> >> I agree. >> >> > > Threading issues ? We've also seen cases in the log >files under load >> > > where a single (same) request is handled by 4 >separate threads, all >> > > starting in the same second - quite vexing. >> > >> > That _might_ be your Servlet Engine. The last time I ran my tests I >> > used Caucho's Resin. It is pretty decent, although it has some >> > synchronization issues of its own regarding archived files >(i.e. jar files). >> > They are so severe that the entire JVM crashes. >> >> Ouch. Ok, I'll try everything with Resin as well, and also with >> Tomcat 4. BTW - Have you (or anyone else) experienced >performance/load >> problems when using the apache connectors at all ? >> >> > > Our environment is a on a Sun Enterprise 250 >(2x450mhz UltraII, 2gig >> > > ram), with Tomcat 3.2.3, CVS Cocoon2, and our >reporting application >> > > (generates various html tables and pdf reports). >> > >> > That sounds very impressive. Can I have one? ;P >> >> Sure, we have 5 of them here :-) >> >> That's it so far. Thanks very much for your advice Berin, we'll >> continue to test here with the ideas you and others have >laid out with >> the current codebase. As we do more testing I'll send in more >> information. >> >> Cheers, >> >> Marcus >> >> >> -- >> ..... >> ,,$$$$$$$$$, Marcus Crafter >> ;$' '$$$$: Computer Systems Engineer >> $: $$$$: Open Software Associates GmbH >> $ o_)$$$: 82-84 Mainzer Landstrasse >> ;$, _/\ &&:' 60327 Frankfurt Germany >> ' /( &&& >> \_&&&&' Email : [EMAIL PROTECTED] >> &&&&. Business Hours : +49 69 9757 200 >> &&&&&&&: >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, email: [EMAIL PROTECTED] >> > >_________________________________________________________ >Do You Yahoo!? >Get your free @yahoo.com address at http://mail.yahoo.com > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, email: [EMAIL PROTECTED] >
Profiler output for thread Thread-14 . application (CPU profiler output - Sampler / Methods) --------------------------------------------------------------------------------------------- Description of CPU usage for thread Thread-14 50.67% - 5053 ms - java.io.Win32FileSystem.getLastModifiedTime() 50.67% - 5053 ms - java.io.File.lastModified() 49.15% - 4902 ms - org.apache.tomcat.loader.AdaptiveClassLoader.shouldReload() 49.15% - 4902 ms - org.apache.tomcat.loader.AdaptiveServletLoader.shouldReload() 49.15% - 4902 ms - org.apache.tomcat.core.ServletWrapper.handleReload() 49.15% - 4902 ms - org.apache.tomcat.core.ServletWrapper.service() 49.15% - 4902 ms - org.apache.tomcat.core.ContextManager.internalService() 49.15% - 4902 ms - org.apache.tomcat.core.ContextManager.service() 49.15% - 4902 ms - org.apache.tomcat.service.http.HttpConnectionHandler.processConnection() 49.15% - 4902 ms - org.apache.tomcat.service.TcpWorkerThread.runIt() 49.15% - 4902 ms - org.apache.tomcat.util.ThreadPool$ControlRunnable.run() 49.15% - 4902 ms - java.lang.Thread.run() 1.51% - 151 ms - org.apache.cocoon.components.source.URLSource.getInfos() 1.51% - 151 ms - org.apache.cocoon.components.source.URLSource.getLastModified() 0.7% - 70 ms - org.apache.cocoon.sitemap.Handler.hasChanged() 0.7% - 70 ms - org.apache.cocoon.sitemap.Manager.getHandler() 0.7% - 70 ms - org.apache.cocoon.sitemap.Manager.invoke() 0.7% - 70 ms - org.apache.cocoon.Cocoon.process() 0.7% - 70 ms - org.apache.cocoon.servlet.CocoonServlet.service() 0.7% - 70 ms - javax.servlet.http.HttpServlet.service() 0.7% - 70 ms - org.apache.tomcat.core.ServletWrapper.doService() 0.7% - 70 ms - org.apache.tomcat.core.Handler.service() 0.7% - 70 ms - org.apache.tomcat.core.ServletWrapper.service() 0.7% - 70 ms - org.apache.tomcat.core.ContextManager.internalService() 0.7% - 70 ms - org.apache.tomcat.core.ContextManager.service() 0.7% - 70 ms - org.apache.tomcat.service.http.HttpConnectionHandler.processConnection() 0.7% - 70 ms - org.apache.tomcat.service.TcpWorkerThread.runIt() 0.7% - 70 ms - org.apache.tomcat.util.ThreadPool$ControlRunnable.run() 0.7% - 70 ms - java.lang.Thread.run() 0.61% - 61 ms - org.apache.cocoon.generation.FileGenerator.generateKey() 0.2% - 20 ms - org.apache.cocoon.transformation.TraxTransformer.setup() 6.99% - 698 ms - java.lang.StringBuffer.<init>() 5.81% - 580 ms - java.net.SocketInputStream.socketRead() 5.64% - 563 ms - java.net.PlainSocketImpl.socketAccept() 4.54% - 453 ms - java.lang.StringBuffer.toString() 4.18% - 417 ms - java.lang.String.substring() 3.44% - 344 ms - java.lang.StringBuffer.expandCapacity() 2.18% - 218 ms - java.io.Win32FileSystem.canonicalize() 1.2% - 120 ms - java.net.URLStreamHandler.toExternalForm() 1.08% - 108 ms - java.lang.String.replace() 1.04% - 104 ms - java.io.Win32FileSystem.getLength() 0.93% - 93 ms - java.util.Hashtable.put() 0.91% - 91 ms - java.io.File.lastModified() 0.86% - 86 ms - java.lang.String.toUpperCase() 0.79% - 79 ms - java.util.HashMap.put() 0.74% - 74 ms - java.lang.Integer.toString() 0.68% - 68 ms - java.util.HashMap.<init>() 0.65% - 65 ms - java.net.SocketOutputStream.socketWrite() 0.6% - 60 ms - java.lang.Long.toString() 0.51% - 51 ms - sun.io.Converters.getConverterClass() 0.48% - 48 ms - java.io.Win32FileSystem.normalize() 0.45% - 45 ms - java.lang.Object.clone() 0.34% - 34 ms - java.lang.String.<init>() 0.34% - 34 ms - java.lang.StringBuffer.append() 0.32% - 32 ms - java.io.Win32FileSystem.resolve() 0.31% - 31 ms - java.util.Hashtable$Enumerator.nextElement() 0.29% - 29 ms - java.io.File.toURL() 0.28% - 28 ms - java.util.Hashtable.<init>() 0.28% - 28 ms - java.lang.String.<init>() 0.28% - 28 ms - java.lang.String.charAt() 0.27% - 27 ms - java.lang.Throwable.fillInStackTrace() 0.25% - 25 ms - java.lang.String.toCharArray() 0.18% - 18 ms - java.net.URL.toString() 0.17% - 17 ms - java.lang.StringBuffer.append() 0.17% - 17 ms - java.io.Win32FileSystem.getBooleanAttributes() 0.16% - 16 ms - java.util.AbstractList.iterator() 0.16% - 16 ms - java.util.ArrayList.<init>() 0.12% - 12 ms - java.lang.Class.newInstance0() 0.11% - 11 ms - java.util.HashMap.keySet() 0.11% - 11 ms - java.lang.Object.toString() 0.1% - 10 ms - java.util.Hashtable.get() 0.1% - 10 ms - java.util.HashMap.getHashIterator() 0.09% - 9 ms - java.io.File.<init>() 0.07% - 7 ms - java.net.Socket.getInputStream() 0.07% - 7 ms - java.net.Socket.getOutputStream() 0.06% - 6 ms - java.lang.StringBuffer.<init>() 0.06% - 6 ms - java.util.LinkedList.addBefore() 0.05% - 5 ms - java.lang.String.indexOf() 0.05% - 5 ms - java.io.Win32FileSystem.isLetter() 0.05% - 5 ms - java.lang.String.indexOf() 0.05% - 5 ms - java.net.ServerSocket.implAccept() 0.05% - 5 ms - java.lang.String.getChars() 0.05% - 5 ms - java.lang.String.<init>() 0.05% - 5 ms - java.io.Win32FileSystem.resolve() 0.05% - 5 ms - java.lang.System.arraycopy() 0.05% - 5 ms - java.lang.ref.Finalizer.register() 0.05% - 5 ms - java.util.HashMap.get() 0.05% - 5 ms - sun.io.Converters.newConverter() 0.05% - 5 ms - java.lang.ThreadLocal.set() 0.05% - 5 ms - java.lang.String.startsWith() 0.05% - 5 ms - java.net.SocketInputStream.available() 0.05% - 5 ms - java.util.Collections$SynchronizedMap.get() 0.05% - 5 ms - java.lang.Integer.toUnsignedString() 0.05% - 5 ms - java.net.PlainSocketImpl.getOutputStream()
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]