httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carlton Huang <cdhuang...@yahoo.com>
Subject Re: [users@httpd] Bottleneck at 120 users with Apache2.0-39 + WebLogic7.0
Date Mon, 21 Oct 2002 21:00:53 GMT

OS: SunOS djdisk 5.6 Generic_105181-33 sun4u sparc SUNW,Ultra-2
CPU Usage: 5 to 7% (70% for a brief time right at the very beginning of the performance test,
then drops to 5-7% for the remainder of the test).  So at a load of 120 users, the CPU usage
is only at 5 to 7 %.  This is a dedicated server running Apache server.  WebLogic and the
application servers are running on a separate machine.  
RAM: 1024M
Each page is the result of Servlets creating XML, which is then passed through  XSL transformation
-> resulting in html pages.
I don't think swapping is taking place, although the free memory on the machine as reported
by "top" is at about 16M free (shouldn't be an issue, though).
Q: How can I determine the memory usage per connection?
Q: How can I determine if I'm flooding the connections?
Thanks,
Carlton
 Jacob Coby <jcoby@listingbook.com> wrote:OS? Processor(s)? RAM? Mem usage per connection?
Is this straight
serving of html files or is there some sort of scripting language being
parsed server-side? What is the cpu usage as you approach 120 users? Are
you starting to swap? Are you flooding the connection?

----- Original Message -----
From: "Carlton Huang" 
To: 
Sent: Monday, October 21, 2002 2:18 PM
Subject: [users@httpd] Bottleneck at 120 users with Apache2.0-39 +
WebLogic7.0


>
> Hi,
>
> I'm running Apache2.0-39 with WebLogic7.0. I have been running
performance tests against the following two configuration setups:
>
> 1) Apache2.0-3.9 + build in generic Apache proxy + WebLogic7.0
>
> 2) Apache2.0-3.9 + WebLogic HTTP proxy + WebLogic7.0
>
> I have noticed that the first configuration performs much better than the
second configuration. But, for both configurations, I am seeing a
bottleneck at about 120 concurrent users. I have tied to tweak the
http.conf file, but still unable to flatten this hump. I was wondering if
anyone would know what may cause a sudden bottleneck at about 120 users. To
illustrate this bottleneck: At 100 users, the latency is about 1 second.
At 110 users, the latency is at about 1.4-1.5 seconds. At 120 users, it's
at about about 1.8 seconds. The latency grows exponentially as it
approaches 120 users and beyond.
>
> The following is the httpd.conf file for the 2nd configuration stated
above.
>
> If you see something that is missing or misconfigured that may explain
this bottleneck, please let me know. Any advice or suggestions are very
much appreciated.
>
> Thanks in advance,
>
> Carlton
>
> ### Section 1: Global Environment
> #
> # The directives in this section affect the overall operation of Apache,
> # such as the number of concurrent requests it can handle or where it
> # can find its configuration files.
> #
>
> #
> # ServerRoot: The top of the directory tree under which the server's
> # configuration, error, and log files are kept.
> #
> # NOTE! If you intend to place this on an NFS (or otherwise network)
> # mounted filesystem then please read the LockFile documentation
> # (available at
);
> # you will save yourself a lot of trouble.
> #
> # Do NOT add a slash at the end of the directory path.
> #
> ServerRoot "/export/home/apache/apache2.0.39"
>
>
>
> #
> # PidFile: The file in which the server should record its process
> # identification number when it starts.
> #
> 
> PidFile logs/httpd.pid
> 
>
> #
> # Timeout: The number of seconds before receives and sends time out.
> #
> Timeout 300
>
> #
> # KeepAlive: Whether or not to allow persistent connections (more than
> # one request per connection). Set to "Off" to deactivate.
> #
> KeepAlive On
>
> #
> # MaxKeepAliveRequests: The maximum number of requests to allow
> # during a persistent connection. Set to 0 to allow an unlimited amount.
> # We recommend you leave this number high, for maximum performance.
> #
> MaxKeepAliveRequests 0
>
> #
> # KeepAliveTimeout: Number of seconds to wait for the next request from
the
> # same client on the same connection.
> #
> KeepAliveTimeout 15
>
> ##
> ## Server-Pool Size Regulation (MPM specific)
> ##
>
> # prefork MPM
> # StartServers: number of server processes to start
> # MinSpareServers: minimum number of server processes which are kept spare
> # MaxSpareServers: maximum number of server processes which are kept spare
> # MaxClients: maximum number of server processes allowed to start
> # MaxRequestsPerChild: maximum number of requests a server process serves
> 
> StartServers 50
> MinSpareServers 50
> MaxSpareServers 100
> MaxClients 150
> MaxRequestsPerChild 0
> 
>
>
>
> #
> # Listen: Allows you to bind Apache to specific IP addresses and/or
> # ports, in addition to the default. See also the 
> # directive.
> #
> # Change this to Listen on specific IP addresses as shown below to
> # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
> #
> #Listen 12.34.56.78:80
> Listen 1090
>
> #
> # Dynamic Shared Object (DSO) Support
> #
> # To be able to use the functionality of a module which was built as a DSO
you
> # have to place corresponding `LoadModule' lines at this location so the
> # directives contained in it are actually available _before_ they are
used.
> # Statically compiled modules (those listed by `httpd -l') do not need
> # to be loaded here.
> #
> # Example:
> # LoadModule foo_module modules/mod_foo.so
> #
>
> #
> # ExtendedStatus controls whether Apache will generate "full" status
> # information (ExtendedStatus On) or just basic information
(ExtendedStatus
> # Off) when the "server-status" handler is called. The default is Off.
> #
> #ExtendedStatus On
>
> ### Section 2: 'Main' server configuration
> #
> # The directives in this section set up the values used by the 'main'
> # server, which responds to any requests that aren't handled by a
> # definition. These values also provide defaults for
> # any containers you may define later in the file.
> #
> # All of these directives may appear inside containers,
> # in which case these default settings will be overridden for the
> # virtual host being defined.
> #
>
> 
> 
> #
> # If you wish httpd to run as a different user or group, you must run
> # httpd as root initially and it will switch.
> #
> # User/Group: The name (or #number) of the user/group to run httpd as.
> # . On SCO (ODT 3) use "User nouser" and "Group nogroup".
> # . On HPUX you may not be able to use shared memory as nobody, and the
> # suggested workaround is to create a user www and use that user.
> # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
> # when the value of (unsigned)Group is above 60000;
> # don't use Group #-1 on these systems!
> #
> User nobody
> Group #-1
> 
> 
>
> #
> # ServerAdmin: Your address, where problems with the server should be
> # e-mailed. This address appears on some server-generated pages, such
> # as error documents. e.g. admin@your-domain.com
> #
> ServerAdmin you@your.address
>
> #
> # ServerName gives the name and port that the server uses to identify
itself.
> # This can often be determined automatically, but we recommend you specify
> # it explicitly to prevent problems during startup.
> #
> # If this is not set to valid DNS name for your host, server-generated
> # redirections will not work. See also the UseCanonicalName directive.
> #
> # If your host doesn't have a registered DNS name, enter its IP address
here.
> # You will have to access it by its address anyway, and this will make
> # redirections work in a sensible way.
> #
> #ServerName new.host.name:80
> ServerName djdisk.justintime.com:1090
>
> #
> # UseCanonicalName: Determines how Apache constructs self-referencing
> # URLs and the SERVER_NAME and SERVER_PORT variables.
> # When set "Off", Apache will use the Hostname and Port supplied
> # by the client. When set "On", Apache will use the value of the
> # ServerName directive.
> #
> UseCanonicalName Off
>
>
>
>
> #
> # TypesConfig describes where the mime.types file (or equivalent) is
> # to be found.
> #
> TypesConfig conf/mime.types
>
> #
> # DefaultType is the default MIME type the server will use for a document
> # if it cannot otherwise determine one, such as from filename extensions.
> # If your server contains mostly text or HTML documents, "text/plain" is
> # a good value. If most of your content is binary, such as applications
> # or images, you may want to use "application/octet-stream" instead to
> # keep browsers from trying to display binary files as though they are
> # text.
> #
> DefaultType text/plain
>
> #
> # The mod_mime_magic module allows the server to use various hints from
the
> # contents of the file itself to determine its type. The MIMEMagicFile
> # directive tells the module where the hint definitions are located.
> #
> 
> MIMEMagicFile conf/magic
> 
>
> #
> # HostnameLookups: Log the names of clients or just their IP addresses
> # e.g., www.apache.org (on) or 204.62.129.132 (off).
> # The default is off because it'd be overall better for the net if people
> # had to knowingly turn this feature on, since enabling it means that
> # each client request will result in AT LEAST one lookup request to the
> # nameserver.
> #
> HostnameLookups Off
>
>
> #
> # ErrorLog: The location of the error log file.
> # If you do not specify an ErrorLog directive within a 
> # container, error messages relating to that virtual host will be
> # logged here. If you *do* define an error logfile for a 
> # container, that host's errors will be logged there and not here.
> #
> ErrorLog logs/error_log
>
> #
> # LogLevel: Control the number of messages logged to the error_log.
> # Possible values include: debug, info, notice, warn, error, crit,
> # alert, emerg.
> #
> LogLevel warn
>
> #
> # The following directives define some format nicknames for use with
> # a CustomLog directive (see below).
> #
> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
> LogFormat "%h %l %u %t \"%r\" %>s %b" common
> LogFormat "%{Referer}i -> %U" referer
> LogFormat "%{User-agent}i" agent
>
> #
> # The location and format of the access logfile (Common Logfile Format).
> # If you do not define any access logfiles within a 
> # container, they will be logged here. Contrariwise, if you *do*
> # define per- access logfiles, transactions will be
> # logged therein and *not* in this file.
> #
> CustomLog logs/access_log common
>
> #
> # If you would like to have agent and referer logfiles, uncomment the
> # following directives.
> #
> #CustomLog logs/referer_log referer
> #CustomLog logs/agent_log agent
>
> #
> # If you prefer a single logfile with access, agent, and referer
information
> # (Combined Logfile Format) you can use the following directive.
> #
> #CustomLog logs/access_log combined
>
> #
> # Optionally add a line containing the server version and virtual host
> # name to server-generated pages (error documents, FTP directory listings,
> # mod_status and mod_info output etc., but not CGI generated documents).
> # Set to "EMail" to also include a mailto: link to the ServerAdmin.
> # Set to one of: On | Off | EMail
> #
> ServerSignature Off
>
>
>
>
> #
> # DefaultLanguage and AddLanguage allows you to specify the language of
> # a document. You can then use content negotiation to give a browser a
> # file in a language the user can understand.
> #
> # Specify a default language. This means that all data
> # going out without a specific language tag (see below) will
> # be marked with this one. You probably do NOT want to set
> # this unless you are sure it is correct for all cases.
> #
> # * It is generally better to not mark a page as
> # * being a certain language than marking it with the wrong
> # * language!
> #
> DefaultLanguage en
> #
> # Note 1: The suffix does not have to be the same as the language
> # keyword --- those with documents in Polish (whose net-standard
> # language code is pl) may wish to use "AddLanguage pl .po" to
> # avoid the ambiguity with the common suffix for perl scripts.
> #
> # Note 2: The example entries below illustrate that in some cases
> # the two character 'Language' abbreviation is not identical to
> # the two character 'Country' code for its country,
> # E.g. 'Danmark/dk' versus 'Danish/da'.
> #
> # Note 3: In the case of 'ltz' we violate the RFC by using a three char
> # specifier. There is 'work in progress' to fix this and get
> # the reference data for rfc1766 cleaned up.
> #
> # Danish (da) - Dutch (nl) - English (en) - Estonian (et)
> # French (fr) - German (de) - Greek-Modern (el)
> # Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (ko)
> # Portugese (pt) - Luxembourgeois* (ltz)
> # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz)
> # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)
> # Russian (ru) - Croatian (hr)
> #
> AddLanguage en .en
>
> #
> # LanguagePriority allows you to give precedence to some languages
> # in case of a tie during content negotiation.
> #
> # Just list the languages in decreasing order of preference. We have
> # more or less alphabetized them here. You probably want to change this.
> #
> LanguagePriority en
>
> #
> # ForceLanguagePriority allows you to serve a result page rather than
> # MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE
(Fallback)
> # [in case no accepted languages matched the available variants]
> #
> ForceLanguagePriority Prefer Fallback
>
> #
> # Specify a default charset for all pages sent out. This is
> # always a good idea and opens the door for future internationalisation
> # of your web site, should you ever want it. Specifying it as
> # a default does little harm; as the standard dictates that a page
> # is in iso-8859-1 (latin1) unless specified otherwise i.e. you
> # are merely stating the obvious. There are also some security
> # reasons in browsers, related to javascript and URL parsing
> # which encourage you to always set a default char set.
> #
> AddDefaultCharset ISO-8859-1
>
>
> #
> # Putting this all together, we can Internationalize error responses.
> #
> # We use Alias to redirect any /error/HTTP_.html.var response to
> # our collection of by-error message multi-language collections. We use
> # includes to substitute the appropriate text.
> #
> # You can modify the messages' appearance without changing any of the
> # default HTTP_.html.var files by adding the line;
> #
> # Alias /error/include/ "/your/include/path/"
> #
> # which allows you to create your own set of files by starting with the
> # /export/home/apache/apache2.0.39/error/include/ files and
> # copying them to /your/include/path/, even on a per-VirtualHost basis.
> #
>
> 
> 
> Alias /error/ "/export/home/apache/apache2.0.39/error/"
>
> 
> AllowOverride None
> Options IncludesNoExec
> AddOutputFilter Includes html
> AddHandler type-map var
> Order allow,deny
> Allow from all
> LanguagePriority en es de fr
> ForceLanguagePriority Prefer Fallback
> 
>
> ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
> ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
> ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
> ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
> ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
> ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
> ErrorDocument 410 /error/HTTP_GONE.html.var
> ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
> ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
> ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
> ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
> ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
> ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
> ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
> ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
> ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
> ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
>
> 
> 
>
> #
> # The following directives modify normal HTTP response behavior to
> # handle known problems with browser implementations.
> #
> BrowserMatch "Mozilla/2" nokeepalive
> BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
> BrowserMatch "RealPlayer 4\.0" force-response-1.0
> BrowserMatch "Java/1\.0" force-response-1.0
> BrowserMatch "JDK/1\.0" force-response-1.0
>
>
>
>
>
> ### Stuff Carlton added
> LoadModule weblogic_module modules/mod_wl_20.so
>
> 
> #WebLogicHost leghorn.justintime.com
> WebLogicHost 10.10.10.141
> WebLogicPort 7001
> 
>
> 
> SetHandler weblogic-handler
> 
>
> 
> SetHandler weblogic-handler
> 
>
>
>
> ---------------------------------
> Do you Yahoo!?
> Y! Web Hosting - Let the expert host your web site


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org



---------------------------------
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
Mime
View raw message