Hi guys,

I am at stage where I have all my various components talking to one another (Apache 
http server 2.0.49 -> Mod JK2 -> Tomcat 4.1.30) and running nicely with each other, 
but the loads on the server are increasing rapidly in our production environment ( 
~2000 logins/day and peak concurrency of ~75 currently ) and I want to get the best 
possible configuration for my server. (Dual 1GHz, 1GB Ram, Win 2k, SQL Server + 
Web/Apps servers).  

Now, ultimately this is up to me, but I am unsure of a few relationships and variables 
used in the configuration files.  The settings I have work, but I want them to be 
optimal and more importantly I want to understand them, so any help on the following 
would be greatly appreciated.

1) server.xml/Connector/bufferSize.  Is this allocated for every users session until 
it is terminated, or is it a peak size that could be allocated?
2) workers2.properties/shm.slots. Does this equate to the 
server.xml/Connector/maxProcessors? or are these fundamentally different?

I have attached my fully working configuration below for those who are interested, as 
I noticed a lot of people in the archives looking for working examples using JK2.

Many thanks,

Matt

P.S. I am new to the list but I have been using Tomcat for many years and love it, and 
if I can help with anyones queries, from the trivial to complex,  I would be only too 
happy to do so.

workers2.properties
[logger]
##############################################################
####    LOGGER                                            ####
##############################################################
# Log level. Supported: EMERG, ERROR, INFO, DEBUG
level=ERROR
# Log file. XXX you may be able to change this at runtime, to 
# implement rolling. 
file=${serverRoot}/logs/jk2_error.log

[config]
##############################################################
####    CONFIG                                            ####
##############################################################
# Location of the workers2.properties file
file=${serverRoot}/conf/workers2.properties
# Set the debug level of the config component
debug=0
# Set the debug level of the hidden env component
debugEnv=0

[shm]
##############################################################
####    SHARED MEMORY SETUP                               ####
##############################################################
# Name of the file that will be mmapped to use as shared memory, 
# If set to 'anonymous' use the anonymous shered memory
file=${serverRoot}/logs/shm.file
# Number of shared memory slots. Set to the number of child 
# processes
slots=378
# Use process memory instead of shared memory. Useful for single 
# child mpm's
useMemory=0

[lb:lb_group]
##############################################################
####    LOAD BALANCER (EVEN IF USED ON ONE MACHINE)       ####
##############################################################
# If set, jk2 won't touch the headers in case of error and will 
# let for example Apache present the 
# ErrorDocument via mod_alias.
noErrorHeader=1
# 
noWorkerMsg=No workers available
# 
noWorkerCode=503
# 
hwBalanceErr=
# If all the workers are in the error state, probably by Tomcat 
# refusing any new connections due to the overload, you can set 
# the timeout forcing lb to wait that some worker becomes 
# available, instead of immediately returning error to the 
# client. This is very useful in situations with high peek 
# load. The timeout should be set to the maximum application 
# call time, but not less then 1 second. 
timeout=5000
# Number of attempts that lb will try on each worker before 
# giving up. 
attempts=6
# Time to wait before retrying to see if the worker came out of 
# the error state. Default = 60secs
recovery=30
# Sessions stick to the same worker, 1=true 0=false 
stickySession=1

[channel.socket:localhost:8009]
##############################################################
####    CHANNEL SETUP, LINKED TO LOAD BALANCER            ####
##############################################################
# Port where Tomcat is listening. It is automatically extracted 
# from the name - you shouldn't have to specify it explicitely.
port=8009
# Remote host. You should use the name, no need to override it
host=127.0.0.1
# If 1, only requests for existing sessions will be forwarded
graceful=0
# ?
keepAlive=0
# Socket timeout for sending and receiving (0=infinite)
timeout=0
# Load balancing factor to use. At this moment, it'll be set on
# the worker, but in future it should be possible to use lb on 
# a channel level. 
lb_factor=100
# loadbalanced groups to which this channel and the associated 
# worker will be added, multivalued. You need to set it only if 
# you have an advanced setup with multiple clusters.
group=lb_group
# Must match the JVM route on tomcat Engine, for load balancing
tomcatId=hsInstance

[ajp13:localhost:8009]
##############################################################
####    AJP1.3 WORKER CONFIG                              ####
##############################################################
tomcatId=hsInstance
group=lb_group
channel=channel.socket:localhost:8009

[uri:/hs/*]
##############################################################
####    URI MAPPING, WHAT TO SEND TO TOMCAT               ####
##############################################################
group=lb_group

[status:jk_status]
##############################################################
####    JK STATUS GROUP                                   ####
##############################################################
info=Status worker, displays runtime information

[uri:/jkstatus/*]
##############################################################
####    JK STATUS CONFIG                                  ####
##############################################################
info=The Tomcat /jkstatus handler
group=status:jk_status

Reply via email to