On 17/10/2012 08:59, Romain Van der Keilen wrote: > Hi There, > > I'm quiet new to this mailing list as I encounter some configuration problems > with Tomcat 7.0.30. > We are currently developing a web application, and we wish to have a good > response time with about 200 parallel sessions. My problem is that starting > from 70 users, the system does not respond quietly. At 70 users, we have an > average of 4000ms for the response time. At 120 users we are at an average of > 20000ms and with 200 users we have about 45000ms of response time. All of > those numbers were computed with JMeter, using 4 passes. > > Tomcat is running with the following options: jdk 1.7.0_07 ; server\jvm.dll ; > initial memory pool 1024Mb ; maximum memory pool 1250 Mb ; Thread stack size > : 1024 kb ; 64 bit version for both java and tomcat > The server itself is a Windows Server 2008 Standard edition running on Intel > Xeon X5660 @ 2.8Ghz (2 physical processors ; 24 virtual processors ) ; 12Gb > Ram > > When the server is under a big load, what I could see with VisualVM is that > the heap size used never exceed 500Mb. When 500Mb is reached, it drops back > to about 100Mb. Another thing is that the CPU never works more than 5% of its > capabilities. > I also took a look at the CPU usage in java classes, and there I saw that 95% > of the time goes to org.apache.tomcat.util.threads.TaskQueue.take(). The > first class related to my application is the oracle.net.ns.Packet.receive() > and is at 0.1% of the CPU time ... > > I've looked on a lot of forums to try to tune my tomcat configuration, but I > haven't found anything that could really help me, this is the reason I ask to > you. I've just put you the whole server.xml file after this, hoping you can > have a look and tell me if there is some big issue with it... The only thing > I changed is the IP of the server. > > Thanks in advance, > > Romain Van der Keilen. > > > <?xml version='1.0' encoding='utf-8'?> > <Server port="8885" shutdown="SHUTDOWN"> > > <!--APR library loader. Documentation at /docs/apr.html --> > <Listener className="org.apache.catalina.core.AprLifecycleListener" > SSLEngine="on" /> > <!--Initialize Jasper prior to webapps are loaded. Documentation at > /docs/jasper-howto.html --> > <Listener className="org.apache.catalina.core.JasperListener" /> > <!-- Prevent memory leaks due to use of particular java/javax APIs--> > <Listener > className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> > <!-- JMX Support for the Tomcat server. Documentation at > /docs/non-existent.html --> > <Listener > className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> > <Listener > className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> > > <GlobalNamingResources> > <Resource name="UserDatabase" auth="Container" > type="org.apache.catalina.UserDatabase" > description="User database that can be updated and saved" > factory="org.apache.catalina.users.MemoryUserDatabaseFactory" > pathname="conf/tomcat-users.xml" /> > </GlobalNamingResources> > > <Service name="Catalina"> > > <Executor name="tomcatThreadPool" namePrefix="catalina-exec-80-" > maxThreads="650" minSpareThreads="100" /> > <Connector executor="tomcatThreadPool" address="10.10.10.10" port="80" > maxHttpHeaderSize="8192" protocol="org.apache.coyote.http11.Http11NioProtocol" > connectionTimeout="20000" redirectPort="443" > server="lighthttpd/2.0.0" enableLookups="false" acceptorThreadCount="4" > socket.directBuffer="false" > compression="off" > compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,image/jpeg,image/png,image/gif" > acceptCount="50" bufferSize="4096" /> > > > <Executor name="stomcatThreadPool" namePrefix="catalina-exec-443-" > maxThreads="650" minSpareThreads="100" /> > <Connector executor="stomcatThreadPool" > protocol="org.apache.coyote.http11.Http11NioProtocol" port="443" > SSLEnabled="true" scheme="https" secure="true" > clientAuth="false" sslProtocol="TLS" > keystoreFile="D:\keystore\appks" server="lighthttpd/2.0.0" > enableLookups="false" keystorePass="changeit" > address="10.10.10.10" acceptorThreadCount="4" socket.directBuffer="false" > compression="off" > compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,image/jpeg,image/png,image/gif" > acceptCount="50" bufferSize="4096" > > </Connector>
You've configured a separate pool for connectors on ports 80 and 443. Why? You've reduced the acceptCount to 50. Why? You are compressing compressed images. Why? You are setting acceptorThreadCount=4. Why? Does your app have a database connection pool? What are the sizing parameters for this pool? p > <Engine name="Catalina" defaultHost="localhost"> > > <Realm className="org.apache.catalina.realm.UserDatabaseRealm" > resourceName="UserDatabase"/> > > <Host name="10.10.10.10" appBase="D:\Tomcat7\" unpackWARs="true" > autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> > <Valve > className="org.apache.catalina.valves.AccessLogValve" > directory="D:\Logfiles\Tomcat\http\Prod" prefix="access_log." suffix=".txt" > pattern="common"/> > <Context path="" docBase=" Prod" reloadable="true" > crossContext="false"></Context> > </Host> > > </Engine> > </Service> > </Server> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > -- [key:62590808]
signature.asc
Description: OpenPGP digital signature