tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Munirathinavel <munirathina...@gmail.com>
Subject Re: How to configure tomcat server.xml....
Date Wed, 07 Apr 2010 13:02:35 GMT

Hi,
  Our application is a online vehicle rental.We are Apache2.2 as a front end
server & Tomcat 6.0.18 as back-end server with mod_jk2.28 tomcat connector.

The followings are our system configurations,

 1)Operating System - Windows server2008
 2)Processor - Intel Xenon
 3)RAM -4 GB

 I've been doing the load testing our application for couple of months.From
this,I observed our application is not supporting for more than 20
concurrent users.If I put a load for 20 users after a period of time some
pages are not loading.Only i'm seeing the empty window.

I'm not getting anything in tomcat log.
In apache mod_jk.log I'm getting the following error....

[Tue Apr 06 18:12:08 2010][1624:3032] [info] jk_ajp_common.c (1788): Writing
to client aborted or client network problems
[Tue Apr 06 18:12:08 2010][1624:3032] [info] jk_ajp_common.c (2447):
(worker1) sending request to tomcat failed (unrecoverable), because of
client write error (attempt=1)
[Tue Apr 06 18:12:08 2010]worker1 empower.mybiz24by7.com 4.547560
[Tue Apr 06 18:12:08 2010][1624:3032] [info] mod_jk.c (2608): Aborting
connection for worker=worker1

I'm also giving the latest configuration files that i have....

Tomcat Configuration files:
server.xml:

<Server port="8006" shutdown="SHUTDOWN"> 
  <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
/>
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <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">
	  <Connector  port="8009" protocol="AJP/1.3" debug="0"
enableLookups="false"
	  emptySessionPath="true" redirectPort="8443" maxThreads="512" 
	  minSpareThreads="50" maxSpareThreads="150" backlog="50"
connectionTimeout="60000" />
    <Engine name="Catalina" defaultHost="****************">

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="empower.mybiz24by7.com"  appBase="gateway"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

			<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/>
      </Host>

	  <Host name="account.mybiz24by7.com"  appBase="mybizadmin"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        
			<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/>
      </Host>

	  <Host name="support.mybiz24by7.com"  appBase="mybizsupport"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        
			<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/>
      </Host>

	  <Host name="crm.mybiz24by7.com"  appBase="mybizcrm"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        
			<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/>
      </Host>

	  <Host name="www.renta4wheeler.com"  appBase="renta4wheeler"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        
			<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/>
      </Host>

		<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/> 
    </Engine>
  </Service>
	<Listener className = "org.apache.jk.config.ApacheConfig"
workersConfig="C:/Apache/conf/workers.properties"
modJk="C:/Apache/modules/mod_jk.so" jkLog="logs/mod_jk.log" jkDebug="info"
noRoot="false"/>
</Server>

 I'm not very good with this configuring tomcat server.xml.so i'll great
full to receive nice suggestion from you.  

context.xml: 

   <Context>

	 <WatchedResource>WEB-INF/web.xml</WatchedResource>
   	<Resource name="jdbc/vehrentDB" auth="Container"
      	type="javax.sql.DataSource" 
	  	maxActive="50"
      	maxIdle="30"
		minIdle="10"
	  	username="******" password="******"      
		driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
	     url="jdbc:sqlserver://***********:1433;	      
		databaseName=*****;user=******;password=*******;"
      	numTestsPerEvictionRun="15" 			     
timeBetweenEvictionRunsMillis="900000"
        minEvictableIdleTimeMillis="900000" 
		testWhileIdle="true"
		testOnBorrow="false"    
		removeAbandoned="true" 
		removeAbandonedTimeout="300"
      	logAbandoned="true" 
	/>

	<Resource name="jdbc/empowerDB" auth="Container"
      	type="javax.sql.DataSource" 
		maxActive="50"
		maxIdle="30"
		minIdle="10"
		username="******" password="*****"
	   driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
      
url="jdbc:sqlserver://*******:1433;databaseName=*****;user=*****;password=*******;"
	      numTestsPerEvictionRun="15" 							
timeBetweenEvictionRunsMillis="900000"
	      minEvictableIdleTimeMillis="900000" 
		testWhileIdle="true"
      	testOnBorrow="false"
            removeAbandoned="true" 
		removeAbandonedTimeout="300"
      	logAbandoned="true" 
	/>
</Context> 
	
Here I'm using the second database empowerDB especially for login purpose
only & rest of the processes are accessing VehrentDB(first one).


Apache2.2 Configuration files:

httpd.conf:

ServerRoot "C:/Apache"
Listen *:80
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so

LoadModule jk_module "C:/Apache/modules/mod_jk.so"

JkLogFile C:/Apache/conf/from_apache_mod_jk.log
JkLogLevel    emerg
JkWorkersFile C:/Apache/conf/workers.properties
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkRequestLogFormat     "%w %V %T"

JkMount /empower ajp13
JkMount /vehrent ajp13

JkMount /empower/* ajp13
JkMount /vehrent/* ajp13

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon

</IfModule>
</IfModule>

ServerAdmin ravi@imbartworks.com
ServerName ************:80
DocumentRoot "C:/Apache/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "C:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

ErrorLog "logs/error.log"
LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access.log" common

</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/"
</IfModule>

<IfModule cgid_module>
</IfModule>
<Directory "C:/Apache/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

DefaultType text/plain
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-ssl.conf


workers.properties:

workers.tomcat_home=C:/Tomcat
workers.java_home=C:/java/jdk1.6.0_16
ps=/
worker.list=worker1
worker.list=worker2
worker.list=supportWorker
worker.list=crmWorker
worker.list=renta4wheelerWorker

worker.worker1.list=ajp13
worker.worker1.ajp13.port=8009
worker.worker1.ajp13.host=empower.mybiz24by7.com
worker.worker1.ajp13.type=ajp13
worker.worker1.ajp13.ping_timeout=1000
worker.worker1.ajp13.connection_pool_timeout=60
worker.worker1.ajp13.connection_pool_size=90
worker.worker1.ajp13.recovery_options=0
worker.worker1.ajp13.connect_timeout=10000
worker.worker1.ajp13.prepost_timeout=10000
worker.worker1.ajp13.reply_timeout=40000
worker.worker1.ajp13.retries=20
worker.worker1.ajp13.socket_timeout=10
worker.worker1.ajp13.lbfactor=5

worker.worker2.list=ajp13
worker.worker2.ajp13.port=8009
worker.worker2.ajp13.host=account.mybiz24by7.com
worker.worker2.ajp13.type=ajp13
worker.worker2.ajp13.lbfactor=1

worker.supportWorker.list=ajp13
worker.supportWorker.ajp13.port=8009
worker.supportWorker.ajp13.host=support.mybiz24by7.com
worker.supportWorker.ajp13.type=ajp13
worker.supportWorker.ajp13.lbfactor=1

worker.crmWorker.list=ajp13
worker.crmWorker.ajp13.port=8009
worker.crmWorker.ajp13.host=crm.mybiz24by7.com
worker.crmWorker.ajp13.type=ajp13
worker.crmWorker.ajp13.lbfactor=1

worker.renta4wheelerWorker.list=ajp13
worker.renta4wheelerWorker.ajp13.port=8009
worker.renta4wheelerWorker.ajp13.host=www.renta4wheeler.com
worker.renta4wheelerWorker.ajp13.type=ajp13
worker.renta4wheelerWorker.ajp13.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.sticky_session=1
worker.loadbalancer.balance_workers= worker1

worker.inprocess.type=jni

httpd-vhosts.conf :

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/corp"
    ServerName XXXXXXX.com
    ServerAlias www.XXXXXXX.com
    ErrorLog "logs/corp-error.log"
    CustomLog "logs/corp-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/imababa"
    ServerName XXXXXXX.com
    ServerAlias www.XXXXXXX.com
    ErrorLog "logs/imababa-error.log"
    CustomLog "logs/imababa-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/ImababaDreams"
    ServerName XXXXXXX.com
    ServerAlias www.XXXXXXX.com
    ErrorLog "logs/imababa-error.log"
    CustomLog "logs/imababa-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/vehrent"
    ServerName XXXXXXX.com
    ServerAlias www.XXXXXXX.com
    ErrorLog "logs/vehrent.log"
    CustomLog "logs/vehrent.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/gateway"
    ServerName empower.XXXXXXX.com
    ServerAlias empower.XXXXXXX.com
    ErrorLog "logs/gateway-error.log"
    CustomLog "logs/gateway-access.log" common

     JkMount /* worker1

    JkUnMount /*js/*.js worker1
    JkUnMount /*.jpeg worker1
    JkUnMount /*.png worker1
    JkUnMount /*.gif worker1
    JkUnMount /*.html worker1
    JkUnMount /*.jpg worker1
    JkUnMount /*.css worker1

</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/account"
    ServerName account.XXXXXXX.com
    ServerAlias account.XXXXXXX.com
    ErrorLog "logs/account-error.log"
    CustomLog "logs/account-access.log" common

    JkMount /* worker2

    JkUnMount /*js/*.js worker2
    JkUnMount /*.jpeg worker2
    JkUnMount /*.png worker2
    JkUnMount /*.gif worker2
    JkUnMount /*.html worker2
    JkUnMount /*.jpg worker2
    JkUnMount /*.css worker2
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/support"
    ServerName support.XXXXXXX.com
    ServerAlias support.XXXXXXX.com
    ErrorLog "logs/support-error.log"
    CustomLog "logs/support-access.log" common

    JkMount /* supportWorker
    JkUnMount /*js/*.js supportWorker
    JkUnMount /*.jpeg supportWorker
    JkUnMount /*.png supportWorker
    JkUnMount /*.gif supportWorker
    JkUnMount /*.html supportWorker
    JkUnMount /*.jpg supportWorker
    JkUnMount /*.css supportWorker
    
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/crm"
    ServerName crm.XXXXXXX.com
    ServerAlias crm.XXXXXXX.com
    ErrorLog "logs/crm.log"
    CustomLog "logs/crm.log" common

    JkMount /* crmWorker
    JkUnMount /*js/*.js crmWorker
    JkUnMount /*.jpeg crmWorker
    JkUnMount /*.png crmWorker
    JkUnMount /*.gif crmWorker
    JkUnMount /*.html crmWorker
    JkUnMount /*.jpg crmWorker
    JkUnMount /*.css crmWorker

</VirtualHost>

<VirtualHost *:80>
    ServerAdmin ravi@imbartworks.com
    DocumentRoot "C:/Apache/htdocs/renta4wheeler"
    ServerName www.XXXXXXX.com
    ServerAlias www.XXXXXXX.com
    ErrorLog "logs/renta4wheeler.log"
    CustomLog "logs/renta4wheeler.log" common

    JkMount /* renta4wheelerWorker
    JkUnMount /*js/*.js renta4wheelerWorker
    JkUnMount /*.jpeg renta4wheelerWorker
    JkUnMount /*.png renta4wheelerWorker
    JkUnMount /*.gif renta4wheelerWorker
    JkUnMount /*.html renta4wheelerWorker
    JkUnMount /*.jpg renta4wheelerWorker
    JkUnMount /*.css renta4wheelerWorker

</VirtualHost>

httpd-ssl.conf :

Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:C:/Apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300
SSLMutex default

<VirtualHost _default_:443>
DocumentRoot "C:/Apache/htdocs/gateway"
ServerName empower.XXXXXX.com
ServerAdmin ravi@imbartworks.com
ErrorLog "C:/Apache/logs/sss-error.log"

SSLEngine on
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile C:/Apache/conf/empower.XXXXXXXX.com.crt
SSLCertificateKeyFile C:/Apache/conf/empower.XXXXXX.com.key
	
	JkMount /* worker1
	JkMount /*dwr/* worker1

    JkUnMount /*js/*.js worker1
    JkUnMount /*.jpeg worker1
    JkUnMount /*.png worker1
    JkUnMount /*.gif worker1
    JkUnMount /*.html worker1
    JkUnMount /*.jpg worker1
    JkUnMount /*.css worker1
    JkUnMount /*.swf worker1
SSLCertificateChainFile "C:/Apache/conf/empower.XXXXX.com.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "C:/Apache/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "C:/Apache/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>                                  

These are the files i'm using in Apache & Tomcat servers for the
configuration.I'm giving the JVM parameter's as follows,
1)Initial Memory Pool     -2560
2)Maximum memory pool-2560
3)Thread size              -I don't  know what to set exactly.


I'm very eagerly waiting for your reply to proceed further.

    Thanks in advance.





Christopher Schultz-2 wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Munirathinavel,
> 
> One post is sufficient: we all got a copy.
> 
> On 2/13/2010 8:48 AM, Munirathinavel wrote:
>> I'm using Tomcat 6.0.18 & apache2.2 server & I need to know configure my
>> server.xml & context.xml for high performance & heavy traffic.
> 
> It's always best to have the most up-to-date version of your software.
> Tomcat 6.0.24 is available: you might want to consider using that in
> your testing environment from here on out.
> 
> How do you connect Apache httpd to Tomcat? What purpose does httpd serve?
> 
>>   <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>
> 
> Do you need this UserDatabase in here? I wouldn't use that in production.
> 
>>   <Service name="Catalina">
>>  	<Connector port="8009" debug="0" enableLookups="false"
>> protocol="AJP/1.3"
>> 	 maxThreads="120" minSpareThreads="30" maxSpareThreads="60"
>> reloadable="false" connectionTimeout="20000"  
>> 	  redirectPort="8443"/> 
> 
> Here's where things get interesting:
> 
> Does 120 simultaneous connections sound like a reasonable load for your
> webapp? What kinds of loads do you /want/ to be able to handle?
> 
> If you need to be able to handle huge amounts of traffic, you might want
> to consider removing Apache httpd from your setup. You haven't said what
> you use it for: some people use it work static content hosting, which
> isn't a good enough reason. Others use it for load balancing, which you
> haven't mentioned so I assume you aren't. Some folks, like me, use it to
> direct traffic to more than one instance of Tomcat when a hardware
> load-balancer isn't available. If you aren't doing any of these things,
> then get rid of httpd: it's just slowing things down.
> 
> If you have a lot of keepalive requests, consider using the NIO
> connector which doesn't tie up request processing threads while waiting
> for the 3nd, 3rd, etc. request on the same connection. If you need to
> send large static files, definitely consider using the APR connector
> with sendFile="true". If you need SSL, also consider using the APR
> connector, as the OpenSSL-based SSL implementation is faster than the
> one you get with the Java provider.
> 
> Finally, the use of an <Executor> is usually recommended because those
> thread pools can dynamically size themselves. The standard <Connector>
> thread pools, for whatever reason, will only create new threads... they
> won't take them out of service. An <Executor> can keep the thread pool
> lean and mean.
> 
> 
>>     <Engine name="Catalina" defaultHost="***********">
>> 
>>         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
>>              resourceName="UserDatabase"/>
> 
> Yikes!
> 
>>       <Host name="***********"  appBase="gateway"
>>             unpackWARs="true" autoDeploy="true"
>>             xmlValidation="false" xmlNamespaceAware="false">
>> 
>> 			<Listener className = "org.apache.jk.config.ApacheConfig"
>> workersConfig="conf/workers.properties"
>> mod_Jk="D:/Apache2.2/modules/mod_jk.so" jkLog="logs/mod_jk.log"
>> jkDebug="info" noRoot="false"/>
>>       </Host>
>> 	
>> 		<Listener className = "org.apache.jk.config.ApacheConfig"
>> workersConfig="conf/workers.properties"
>> mod_Jk="D:/Apache2.2/modules/mod_jk.so" jkLog="logs/mod_jk.log"
>> jkDebug="info" noRoot="false"/> 
>>     </Engine>
>>   </Service>
>> 	<Listener className = "org.apache.jk.config.ApacheConfig"
>> workersConfig="conf/workers.properties"
>> mod_Jk="D:/Apache2.2/modules/mod_jk.so" jkLog="logs/mod_jk.log"
>> jkDebug="info" noRoot="false"/>
> 
> You probably don't want to use the ApacheConfig listener: just write
> your own mod_jk configuration files. You certainly don't need /three/ of
> them.
> 
>>    	<Resource name="jdbc/vehrentDB" auth="Container"
>>       	type="javax.sql.DataSource" 
>> 	  	maxActive="100"
> 
> Only you can decide what settings are best for your webapp. Here are
> some things to think about:
> 
> 1. You have 120 max threads, meaning a maximum of 120 simultaneous
> connections to handle. Your database connection pool is configured for
> 100 connections. What percentage of your requests do /not/ require
> database access? If the answer is lower than about 20%, then you
> probably want to make your maxThreads and maxActive closer to each
> other. Otherwise, request threads will block waiting for database
> connections.
> 
> There are good reasons to limit your database connection pool size: if
> your database is not particularly high-performance, then you might want
> users to wait. It's just something to think about.
> 
>> 	<Resource name="jdbc/empowerDB" auth="Container"
>>       	type="javax.sql.DataSource" 
>> 		maxActive="100"
> 
> If you have 2 databases, I might think about the ratio of connections
> used for each database: if the usage is roughly 50/50, maybe you want
> only 60 connections in each database connection pool. Reducing from 100
> to 60 connections to your database might eliminate some overhead that's
> not needed.
> 
> Then again, if your pool size is set that high and the ratio really is
> 50/50, then you'll end up with an effective pool size of 60 connections,
> anyway, since the pool won't create connections it doesn't need.
> 
> You haven't said a word about your application, so it would be helpful
> to know what it's supposed to do, in general.
> 
> You also haven't mentioned anything about current load versus ideal or
> target load. Nothing about memory requirements, numbers of concurrent
> sessions you'd like to support, or average sizes of sessions.
> 
> If you provide some of that information, we may be able to give you
> further tips. Everything above is just kind of generic.
> 
> In general, Tomcat is quite fast in it's default configuration. I would
> take a wild-ass guess that, for any non-trivial web application, Tomcat
> configuration can only account for somewhere around 10% of performance
> advantages... and that's mostly with the <Connector> configuration under
> heavy loads. It's most likely that, when there is a performance problem,
> that your web application is going to be the "problem".
> 
> Good luck,
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAkt2wF4ACgkQ9CaO5/Lv0PBcrACffFQQwcHtim/diSfALNcvUcQc
> ba8An23H17/eD00962524sjKcqdzJTw/
> =emWJ
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/How-to-configure-tomcat-server.xml....-tp27575197p28164684.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


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


Mime
View raw message