that is truly bizzar. Are you using any request filters? The only thing I can think of is if some request filter is processing the inputstream. By any chance, did you try the same profiling with a super simple hello_world.jsp. If you see the same exact behavior from hello_world.jsp, then it is coyote. If not, there could be something else interfering with coyote. the bug may not appear with the older connector and is the result of your page + coyote. I've seen this kind of bugs in the past. peter
David Morris <[EMAIL PROTECTED]> wrote: I hope this is a simple configuration issue. Here is my setup for the Coyote and HTTP connectors: port="8080" minProcessors="5" maxProcessors="95" enableLookups="true" redirectPort="8443" acceptCount="10" debug"0" connectionTimeout="60000" useURIValidationHack="false" /> -vs- className="org.apache.catalina.connector.http.HttpConnector" port="8080" minProcessors="5" maxProcessors="95" enableLookups="true" redirectPort="8443" acceptCount="10" debug"0" connectionTimeout="60000" /> I profiled the an offending page interaction using a tool from IBM called performance explorer. To analyze the results I used a tool from IBM called Performance Trace Data Visualizer. Compared to other tools I have used, it is more similar to JProbe than jProfiler in that it shows hierarchical clock time. This tool also tracks processor usage, inline time, locks, threads, object creation, garbage collection, etc. From what I can see there are no locking issues and the read method of java.net.SocketInputStream is taking the majority of the processing time. When I saw that the Coyote Connector was invoking the SocketInputStream.read(byte[],int,int) routine, I tried the old HTTP connector without expecting any performance change. The > 8 X's performance increase was totally unexpected and I am just trying to find out how to do the right thing (use the coyote connector). In both cases there are 17 calls to with one being a thread startup. Of the 16 calls, the 15th is the one taking up the bulk of the time (6,437,348 NS vs. 5,950 - 150 NS). Thanks, David Morris >>> [EMAIL PROTECTED] 9/18/2003 12:18:49 PM >>> I'm not totally clear on how you profiled the page. Did you use OptimizeIt/JProbe, or simply added a start time at the beginning and at the end. from first hand experience, I doubt the connector is the cause, but I could be wrong. What in your struts page is causing it to take 35 seconds? You might want to time the actual application process and see how much time it takes. In theory and practice reading the input into buffers scales better. What exactly does the page do with the input in the first place? peter David Morris wrote: I did some profiling of a slow page (Struts based) on a site using the Coyote connector. This site does not use Apache. It appeared that a java.net.SocketInputStream.read being invoked from org.apache.coyote.http11.InternalInputBuffer.parseRequestLine() was causing a bottleneck. In this case average response over a 5 page interaction with three being relatively simple and two being complex averaged 35 seconds per response when repeated 20 times. I changed the site to use the old and deprecated http connector and performance improved to 4 seconds per response. It appears that the org.apache.catalina.connector.http.SocketInputStream was much faster. Since Coyote is recommended, does anyone have any ideas on how I can get it to perform better? Over dozens of tests, it appears that large pages take a long time with the Coyote connector. Thanks, David Morris --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------- Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software
