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]

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to