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

Reply via email to