Can any want tell what the custom property is for setting Max
Connection for WAS HTTP container and were to add this property?
I think it MaxConnection but not sure.
Thank You
DLWasler
Websphere Http Transports are backed by a pool of threads. You can
configure this pool with the admin console "Application Servers / Mys
Server / Web Container / Thread Pool"
Default value for "Maximum Size" is 50
Hope this helps,
Cyrille
--
Cyrille Le Clerc
clec...@pobox.com
clec...@fr.ibm.com
I'm aware of the thread parameter, the one I need controlled the number
of HTTP connections the app server will accept at any one time.
Thank You
DLWasler
.
I know another set of parameters than may help you
(MaxKeepAliveConnections, MaxConnectBacklog, ...). They are described
in the info center :
http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1/topic/com.ibm.websphere.base.doc/info/aes/ae/xrun_transport.html
By the way, there is very interesting tuning section on Websphere 6
Info Center. It is called "Tuning operating systems" ; it deals we
things like ulimit, tcp_keepalive, ... :
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.base.doc/info/aes/ae/tprf_tuneopsys.html
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.base.doc/info/aes/ae/tprf_tunelinux.html
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.base.doc/info/aes/ae/tprf_tunewindows.html
Hope this helps,
Cyrille
--
Cyrille Le Clerc
clec...@pobox.com
I need to know the best practices for tuning the IBM HTTP webserver
for, related to the number of startup instances of the HTTP webserver
and number it can grown to or max number of HTTP webserver, max threads
and children, these permeters are in the httpd config file.
Can you help me out here?
IBM used to have a doc which explains these permeters it gone now.
Thank You
DLWasler
Here is a theoretical response (hopefully not too boring :-)) about:
- web server front-end & servlet containers
- managing http/tcp-ip connections on high volume web sites
First, for the wording, as "IBM Http Server" (aka IHS) is an
enhancement of "Apache httpd", I will say "Apache httpd" for features
that are related to Apache httpd and I will says "IBM Http Server" for
IHS specific features.
Adding a web server front-end to a servlet container
----------------------------------------------------
Having a web server front-end is not compulsory : almost all the
J2EE servers can directly accept http requests from web browsers :
- Websphere : infocenter says "In Version 5.0.2, HTTP transport
functionality is now a supported internal Web server"
http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1/topic/com.ibm.websphere.nd.doc/info/ae/ae/crun_transport.html
- I don't remember nor have the time to find official docs for the
other servers but here are http based benchmarks that does not
involve web server frontends
-> Bea doesn't use a web server in front of WebLogic when it goes to
SPECjAppServer (e.g.
http://www.spec.org/jAppServer2004/results/res2005q3/jAppServer2004-20050719-00012.html)
-> WebPerformanceInc's serlvet container benchmark is done without a
web server front-end for at least Tomcat, Orion and Resin.
http://webperformanceinc.com/library/ServletReport/
Having a web server front-end can be useful for :
- security : web server in public zone and servlet container in private
zone
- add load balancing to clustered servlet containers (available in
Websphere, Weblogic, Tomcat, ...)
- serving pages non java pages (static files, .php, ...)
- adding extra features to the web server :
-> mod_deflate, mod_ssl, mod_expires to respectively compress,
encrypt and add "Expires" http header
-> a cache like mod_cache, IBM Http Server Cache ; they usually rely
on "Expires" and "Cache-Control" http headers
-> ...
Web Server tuning vs. J2EE Server tuning for http requests
----------------------------------------------------------
When a web server is used as a front-end of a servlet engine, it
must at least support as many incoming request as the servlet container
does.
Web servers and servlet containers have almost the same tuning
parameters for incoming http requests. This similarity is due to the
facts that :
- nowadays, servlet containers http entry point can ben seen as an
"Internal Web Server"
- servlet containers use blocking io (one thread per request) and
Apache does the same (it is different for Microsoft IIS that uses non
blocking io)
Apache Httpd (and thus IHS) main tuning params for incoming request
are MaxClients and ListenBacklog ; extract from the official doc :
- Apache official doc
-> http://httpd.apache.org/docs/2.0/mod/mpm_common.html#maxclients
-> "The MaxClients directive sets the limit on the number of
simultaneous requests that will be served. Any connection attempts
over the MaxClients limit will normally be queued, up to a number
based on the ListenBacklog directive. Once a child process is
freed at the end of a different request, the connection will then
be serviced.
- interesting article from borland
->http://info.borland.com/devsupport/bes/technotes/apache_tuning.html
There is a relation between IHS front-end configuration and
websphere configuration ; hopefully, default values comply to it :
- ihs.maxClients(default=150) > websphere.webContainer.pool(default=50)
Importance of underlying TCP-IP parameters
------------------------------------------
Some operating system tcp-ip parameters may need to be changed for a
high volume web site. Indeed, high volume implies a high number of
opened sockets.
When you do a "netstat -vta" on a stressed server, you will a see a
great number of "TIME_WAIT" sockets
Here is a clear explanation of the potential problem :
http://www.octetstring.com/support/issues/Tuning-TIMEWAIT.php
Official docs
-http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.base.doc/info/aes/ae/tprf_tunelinux.html
- http://e-docs.bea.com/wls/docs81/perform/HWTuning.html
- http://www.caucho.com/resin-3.0/config/tuning.xtp
- http://httpd.apache.org/docs/2.0/misc/perf-tuning.html
Importance of http Keep-Alive
-----------------------------
As a web pages are most of the time composed of several files
(images, css, scripts, ...), HTTP specification allows a browser to
reuse a connection to perform several consecutive requests thanks to
the "Keep-Alive" param :
- pros : spare the cost of opening connections
- cons : sockets are rare and critical resources for a server. For a
high volume web site, you should spare these resources
How to benefit of "Keep-Alive" optimization on a high volume web
site ?
Yahoo! uses two separated web servers for data pages (www.yahoo.com)
and one for images (us.a1.yimg.com) :
- the data server disables "Keep-Alive" to spare its connections and
serve as many client as possible
-> request like http://www.yahoo.com returns an http header
"Connection: close" (I use http://livehttpheaders.mozdev.org/)
- the images server uses "Keep-Alive" to be as fast as possible for
each client, even if some clients have to wait
-> request like http://us.a1.yimg.com/us.yimg.com/i/ww/beta/y3.gif
use Keep-Alive (implicitly not returning "Connection: close")
Keep-Alive is configured in httpd.conf with "KeepAlive" and
"KeepAliveTimeout" directives