Dan,

On 8/6/14, 4:52 AM, "Daniel Mikusa" <dmik...@pivotal.io> wrote:

>On Tue, Aug 5, 2014 at 7:54 PM, Peter Rifel <pri...@mixpo.com> wrote:
>
>> Hello,
>>
>> I am in the process of upgrading from Tomcat 7.0.54 to Tomcat 8.0.9 and
>>am
>> seeing some performance degradation in my webapp.
>>
>> Configuration info:
>>
>> Ubuntu 14.04.1 LTS
>> java version "1.8.0_11"
>> Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
>> Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
>>
>> Both versions of tomcat use the APR Connector with TC Native 1.1.31
>> statically linked against APR 1.5.1 and OpenSSL 1.0.1h
>>
>>
>> I'm running identical requests to identical web apps between these
>>tomcats
>> and in Tomcat 8 I'm seeing an ~20% response time increase and as such a
>> similar reqs / sec decrease.  After using VisualVM to profile the
>> application I've narrowed it down to the JRE's JAXP library taking
>> significantly longer to create its xml validation "SchemaFactory" which
>> doesn't make sense to me because I'm using the same JRE in both tests.
>>I
>> know that the Resources implementation was overhauled in Tomcat 8 so is
>> there any possibility that this could be a side effect?  For a better
>>idea
>> of what I'm talking about, see the below VisualVM screenshots of a
>> profiling snapshot's call tree:
>>
>>
>> Tomcat 7 - http://i.imgur.com/pbX5xBG.jpg
>> Notice how the time spent in the javax.xml.validation.* methods is <6%
>>
>> Tomcat 8 - http://i.imgur.com/Txv20lg.jpg
>> Notice how the time spent in these methods is significantly higher.
>>
>>
>> Again, I'm confused as to how the performance of the JRE's library
>>changes
>> between tomcat versions, can anyone explain this to me or point me in
>>the
>> right direction on where to look?  Is it as simple as a config change or
>> will it require a java code change?  The XmlUtils.validate method you
>>see
>> in the screenshot is simply the following:
>>
>> javax.xml.validation.SchemaFactory factory =
>> SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema";);
>>
>> Here are the Tomcat configurations:
>>
>>
>> Tomcat 8 server.xml: http://pastebin.com/Tn3d6bXd
>> Tomcat 8 context.xml: http://pastebin.com/reuJCGNq
>>
>> Tomcat 7 server.xml: http://pastebin.com/Kq6SfFd0
>> Tomcat 7 context.xml: http://pastebin.com/vdp0PGPh
>>
>>
>> Does anyone have any idea why this might be performing so differently
>> between versions of tomcat?  Could it be a bug in the JRE?  I can try
>>and
>> provide test code for repro if it helps.
>>
>
>Are you using the "endorsed" directory with Tomcat 7 (and not with 8) by
>any chance?
>
>
>http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html#XML_Parser
>s_and_Java
>
>Dan

I double checked, and no I'm not using that or any special class-loading
in either tomcat 7 or 8.  For reference, here is my CATALINA_OPTS for
both: (The Xverify:none at the end was to fix a problem with the profiler)

-Djava.library.path=$CATALINA_HOME/lib/apr/osx:$CATALINA_HOME/lib/apr/linux
 -javaagent:$CATALINA_HOME/bin/classmexer.jar -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:$CATALINA_HOME/logs/garbage-collection_$(date
+'%y_%m_%d__%H_%M').log
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
-Dcom.sun.management.jmxremote.port=64850
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true
-Xms128m -Xmx5120m -XX:MaxPermSize=256m -Xverify:none


>
>
>>
>> Thanks in advance,
>>
>> Peter Rifel
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>

Peter


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

Reply via email to