mpm_default.h revision b0f20a4a26bcfa85724b1c2e5ec6a077f12ef44c
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder/* ====================================================================
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * Copyright (c) 1995-1999 The Apache Group. All rights reserved.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * Redistribution and use in source and binary forms, with or without
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * modification, are permitted provided that the following conditions
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * are met:
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * 1. Redistributions of source code must retain the above copyright
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * notice, this list of conditions and the following disclaimer.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * 2. Redistributions in binary form must reproduce the above copyright
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * notice, this list of conditions and the following disclaimer in
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * the documentation and/or other materials provided with the
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * distribution.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * 3. All advertising materials mentioning features or use of this
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * software must display the following acknowledgment:
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * "This product includes software developed by the Apache Group
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * for use in the Apache HTTP server project (http://www.apache.org/)."
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * 4. The names "Apache Server" and "Apache Group" must not be used to
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * endorse or promote products derived from this software without
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * prior written permission. For written permission, please contact
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * apache@apache.org.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * 5. Products derived from this software may not be called "Apache"
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * nor may "Apache" appear in their names without prior written
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * permission of the Apache Group.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * 6. Redistributions of any form whatsoever must retain the following
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * acknowledgment:
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * "This product includes software developed by the Apache Group
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * for use in the Apache HTTP server project (http://www.apache.org/)."
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * OF THE POSSIBILITY OF SUCH DAMAGE.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * ====================================================================
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * This software consists of voluntary contributions made by many
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * individuals on behalf of the Apache Group and was originally based
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * on public domain software written at the National Center for
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * Supercomputing Applications, University of Illinois, Urbana-Champaign.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * For more information on the Apache Group and the Apache HTTP server
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * project, please see <http://www.apache.org/>.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder */
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#ifndef APACHE_MPM_DEFAULT_H
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#define APACHE_MPM_DEFAULT_H
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder/* Number of threads to spawn off by default --- also, if fewer than
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * this free when the caretaker checks, it will spawn more.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder */
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#ifndef DEFAULT_START_THREAD
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#define DEFAULT_START_THREAD 5
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#endif
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder/* Maximum number of *free* server threads --- more than this, and
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * they will die off.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder */
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#ifndef DEFAULT_MAX_SPARE_THREAD
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#define DEFAULT_MAX_SPARE_THREAD 10
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#endif
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder/* Minimum --- fewer than this, and more will be created */
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#ifndef DEFAULT_MIN_SPARE_THREAD
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#define DEFAULT_MIN_SPARE_THREAD 5
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#endif
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder/* Limit on the threads per process. Clients will be locked out if more than
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * this * HARD_SERVER_LIMIT are needed.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder *
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * We keep this for one reason it keeps the size of the scoreboard file small
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * enough that we can read the whole thing without worrying too much about
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder * the overhead.
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder */
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#ifndef HARD_THREAD_LIMIT
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#define HARD_THREAD_LIMIT 64
#endif
/* Number of servers to spawn off by default
*/
#ifndef DEFAULT_NUM_DAEMON
#define DEFAULT_NUM_DAEMON 2
#endif
/* Limit on the total --- clients will be locked out if more servers than
* this are needed. It is intended solely to keep the server from crashing
* when things get out of hand.
*
* We keep a hard maximum number of servers, for two reasons --- first off,
* in case something goes seriously wrong, we want to stop the fork bomb
* short of actually crashing the machine we're running on by filling some
* kernel table. Secondly, it keeps the size of the scoreboard file small
* enough that we can read the whole thing without worrying too much about
* the overhead.
*/
#ifndef HARD_SERVER_LIMIT
#define HARD_SERVER_LIMIT 8
#endif
/* File used for accept locking, when we use a file */
#ifndef DEFAULT_LOCKFILE
#define DEFAULT_LOCKFILE "logs/accept.lock"
#endif
/* Where the main/parent process's pid is logged */
#ifndef DEFAULT_PIDLOG
#define DEFAULT_PIDLOG "logs/httpd.pid"
#endif
/*
* Interval, in microseconds, between scoreboard maintenance.
*/
#ifndef SCOREBOARD_MAINTENANCE_INTERVAL
#define SCOREBOARD_MAINTENANCE_INTERVAL 1000000
#endif
/* Number of requests to try to handle in a single process. If <= 0,
* the children don't die off.
*/
#ifndef DEFAULT_MAX_REQUESTS_PER_CHILD
#define DEFAULT_MAX_REQUESTS_PER_CHILD 10000
#endif
#endif /* AP_MPM_DEFAULT_H */