(This is a new thread spawned from my "Tomcat 6.0.24 Google Chrome" thread
with better information)

I'm running Tomcat 6.0.24, Sun JDKx86 6u18, Windows 7 64, Firefox and Chrome
browser.

I've noticed that for about the first 1-3 min after my tomcat instance has
started some of my requests that normally take > 1 sec to be handled are
taking 30+ sec to respond.

I've narrowed the problem down to my use of an Executor pool to handle
requests.  The follwing is my server.xml:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
/>
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Service name="Catalina">
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
        maxThreads="150" minSpareThreads="4"/>
     <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps">
      </Host>
    </Engine>
  </Service>
</Server>

If I change <Connector/> to not use and executor like so:

<Connector port="8080" protocol="HTTP/1.1" 
                connectionTimeout="20000" 
                redirectPort="8443" />

I don't experience a problem.

I've hooked a profiler up and it appears all of the time is being spent
doing a socketRead with the following trace:

[Wall Time]  java.net.SocketInputStream.socketRead0(FileDescriptor, byte[],
int, int, int)
java.net.SocketInputStream.read(byte[], int, int)
org.apache.coyote.http11.InternalInputBuffer.fill()
org.apache.coyote.http11.InternalInputBuffer.parseRequestLine()
org.apache.coyote.http11.Http11Processor.process(Socket)

I've tried to analyse the network info with wireshark and see no decernable
differences in network traffic between the 2 requests.  I can try analyzing
wireshark data further if the list thinks that would be useful.  Though I
find it strange that it works fine when not using an Executor.

Anyone have any ideas or seen similar behaviour?

Thanks,
Mike
-- 
View this message in context: 
http://old.nabble.com/Slow-requests-when-using-%22Executor%22-pool-tp27443550p27443550.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to