In brief:
I am load-testing an app running on Tomcat 6 NIO and am observing a big
discrepancy between avg request latency as reported by JMeter (660ms) and
the profiler (19ms). I would like to understand where is the delta being
spent.

In detail
I have two windows boxes on the same subnet of a 1GB local network: box A is
running our app on Tomcat 6 NIO; box B is running JMeter and YourKit GUI.
JMeter is simulating 40 users, each repeatedly hitting the server with the
same request (against port 8080), with 50ms think time. The response for
each request is in plain text, about 10-20k worth. The request hits
app-level cache 100% of the time, so JDBC connection aren't even being
checked out of the cxn pool and no DB work is being done.
After 20,000+ requests:
-JMeter reports average latency of 661ms
-The profiler reports a 19ms average and the same invocation count. YourKit
is doing sampling.

Given the huge discrepancy, I would like to determine where is 642ms
(=661-19) being spent. Network latency should not be an issue. Is it
possible that Tomcat is spending time doing something in NIO poller - before
Tomcat's exec threads are engaged?

thanks!
-nikita

App Stack/ Hardware
Tomcat 6.0.18 NIO
Sun JVM 1.6, 1000mb heap
Spring 2.5.6
Hibernate 3.3.1
JBossCache 3.0.3 (MVCC)
Windoze Vista
4GB ram, Intel Core Duo CPU

Tomcat Config:

<Server port="8005" shutdown="SHUTDOWN">

 
    <Service name="Catalina">
  
        <Executor
              name="MainPool"
              maxThreads="60"
              minSpareThreads="25"
              namePrefix="dg-request-"
        />
    
        <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
        <Connector
              protocol="org.apache.coyote.http11.Http11NioProtocol"
              port="8080" redirectPort="8443"
              acceptCount="100"
              connectionTimeout="20000"
              disableUploadTimeout="true"
              enableLookups="false"
              maxHttpHeaderSize="8192"
              executor="MainPool"
        />              

        <Connector
              protocol="org.apache.coyote.http11.Http11NioProtocol"
              port="8443"
              acceptCount="100"
              connectionTimeout="20000"
              disableUploadTimeout="true"
              enableLookups="false"
              maxHttpHeaderSize="8192"
              executor="MainPool"
              scheme="https" secure="true" SSLEnabled="true"
              keystoreFile="conf/tomcat.keystore"
              keystorePass="eviltwin"
              clientAuth="false"
              sslProtocol="TLS"
        />


        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
            </Host>
        </Engine>
    </Service>
</Server>


-----
----------------
Nikita Tovstoles
vside.com
----------------

-- 
View this message in context: 
http://www.nabble.com/what-can-Tomcat-be-doing-that-a-profiler-can%27t-see--tp23084469p23084469.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