You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Jan Vávra <va...@602.cz> on 2011/09/06 14:47:50 UTC

[users@httpd] only one worker process

Hello,
  I'm developing a php module and I'd like to test if the module doesn't 
consume memory and doesn't make a seg fault.
I'd like to make a multithreaded test and start only one worker process.
Can anybody help me with the proper configuration?

I have SLES11, 32bit. The server-tuning.conf I set to:

<IfModule prefork.c>
         StartServers         1
         MinSpareServers      1
         MaxSpareServers     1
         ServerLimit        20000
         MaxClients         150
         MaxRequestsPerChild  10000
</IfModule>
<IfModule worker.c>
         StartServers         1
         MinSpareThreads     25
         MaxSpareThreads     75
         ThreadLimit         64
         MaxClients         150
         ThreadsPerChild     25
         MaxRequestsPerChild  10000
</IfModule>
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mod_setenvif.c>
         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
         BrowserMatch "Microsoft Data Access Internet Publishing 
Provider" redirect-carefully
         BrowserMatch "^WebDrive" redirect-carefully
         BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
         BrowserMatch "^gnome-vfs" redirect-carefully
</IfModule>

The apache compilation options are:

ca:/etc/apache2 # /usr/sbin/httpd2 -V
Server version: Apache/2.2.10 (Linux/SUSE)
Server built:   Apr 13 2010 16:44:06
Server's Module Magic Number: 20051115:20
Server loaded:  APR 1.3.3, APR-Util 1.3.4
Compiled using: APR 1.3.3, APR-Util 1.3.4
Architecture:   32-bit
Server MPM:     Prefork
   threaded:     no
     forked:     yes (variable process count)
Server compiled with....
  -D APACHE_MPM_DIR="server/mpm/prefork"
  -D APR_HAS_SENDFILE
  -D APR_HAS_MMAP
  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
  -D APR_USE_SYSVSEM_SERIALIZE
  -D APR_USE_PTHREAD_SERIALIZE
  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
  -D APR_HAS_OTHER_CHILD
  -D AP_HAVE_RELIABLE_PIPED_LOGS
  -D DYNAMIC_MODULE_LIMIT=128
  -D HTTPD_ROOT="/srv/www"
  -D SUEXEC_BIN="/usr/sbin/suexec2"
  -D DEFAULT_PIDLOG="/var/run/httpd2.pid"
  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
  -D DEFAULT_LOCKFILE="/var/run/accept.lock"
  -D DEFAULT_ERRORLOG="/var/log/apache2/error_log"
  -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
  -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> 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


Re: [users@httpd] only one worker process

Posted by Prasanna Ram Venkatachalam <vp...@gmail.com>.
>
> I'd like to make a multithreaded test and start only one worker process.
> Can anybody help me with the proper configuration?
>

The MPM for above model should be worker MPM. Refer to this link
http://httpd.apache.org/docs/2.0/mod/worker.html



> <IfModule worker.c>
>        StartServers         1
>        MinSpareThreads     25
>        MaxSpareThreads     75
>        ThreadLimit         64
>        MaxClients         150
>        ThreadsPerChild     25
>        MaxRequestsPerChild  10000
> </IfModule>
>

Add ServerLimit inside the above block and keep its value 1.


> The apache compilation options are:
>
> Server MPM:     Prefork
>  threaded:     no
>    forked:     yes (variable process count)
> Server compiled with....
>  -D APACHE_MPM_DIR="server/mpm/prefork"
>

Seems the apache is configured with prefork. That means multiple processes
and not threads as you can see from above.
You might need to reconfigure and compile with following option
--with-mpm=worker

Good luck

-Pras