never mind -- i didn't read far enough On Aug 14, 12:21 pm, D_bot <[email protected]> wrote: > I'm a bit hazy on how to switch from prefork MPM to worker MPM. > > Since results from Paul's apache2 -V command seem to show his apache > server > was compilted with the prefork option, does this indicate a > recompilation to > include worker.c? > > On Aug 13, 5:56 am, Graham Dumpleton <[email protected]> > wrote: > > > > > > > > > You should be able to get list of modules actually being load by using > > the -M command to Apache. Thus: > > > apache2 -M > > > Now. I am going to go through things to try as a series of emails over > > time as don't have state of mind now to try and do it all at once. > > > First up. If not using PHP then disable mod_php. > > > Second, now that you have got rid of mod_php, switch Apache > > installation from prefork MPM to worker MPM. > > > Third, since you are using mod_wsgi daemon mode, ensure that mod_wsgi > > doesn't unnecessarily enable Python interpreters in Apache child > > processes. For that read: > > > http://blog.dscpl.com.au/2009/11/save-on-memory-with-modwsgi-30.html > > > Changing from prefork to worker MPM and ensuring the Python > > interpreters aren't initialised when not needed, will cut down on > > memory footprint in the Apache child processes which do the proxying > > to mod_wsgi daemon mode processes. This is because instead of > > potentially up to 150 processes under excessive load, you would at > > most have 6 processes. You have so few now because each of those 6 can > > handle 25 concurrent requests in worker MPM where as prefork needed a > > separate process for each request. > > > To try and gauge progress on this before you start, change: > > > WSGIDaemonProcess site-1 user=my-user group=www-data threads=25 > > > to: > > > WSGIDaemonProcess site-1 user=my-user group=www-data threads=25 > > display-name=%{GROUP} > > > When you do a 'ps' now, the mod_wsgi daemon processes will be named > > '(wsgi:site-1)' and can be distinguished easily from Apache root and > > child process. > > > Use 'ps' to look at number of processes and sizes before making the > > other changes above. For example, on my Mac OS X box with prefork I > > see: > > > $ ps auxwwww | egrep 'httpd|USER' | grep -v grep > > USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME > > COMMAND > > _www 58942 0.0 0.1 2440732 2184 ?? S 7:31am 0:08.82 > > /usr/sbin/httpd -D FOREGROUND > > _www 58941 0.0 0.1 2440732 2184 ?? S 7:31am 0:08.83 > > /usr/sbin/httpd -D FOREGROUND > > _www 58940 0.0 0.1 2440732 2196 ?? S 7:31am 0:08.79 > > /usr/sbin/httpd -D FOREGROUND > > _www 58937 0.0 0.1 2440732 2184 ?? S 7:30am 0:08.82 > > /usr/sbin/httpd -D FOREGROUND > > root 58908 0.0 0.0 2439768 1208 ?? Ss 7:30am 0:01.97 > > /usr/sbin/httpd -D FOREGROUND > > _www 61069 0.0 0.1 2440732 2232 ?? S 11:22am 0:05.44 > > /usr/sbin/httpd -D FOREGROUND > > _www 60310 0.0 0.1 2440732 2184 ?? S 9:47am 0:06.62 > > /usr/sbin/httpd -D FOREGROUND > > > You would grep for 'apache2' and not 'httpd'. > > > The 'root' owned process is the Apache parent process and the rest are > > the Apache child processes proxying to the mod_wsgi daemon processes > > and which would also be handling static file handling if Apache being > > used for that. > > > Remember to check this when traffic flowing and now just when idle as > > Apache will dynamically create more and more processes to meet demand. > > You can read a bit about that at: > > > http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usa... > > > So, disable PHP, switch to worker MPM and disable interpreter > > initialisation in embedded mode and restrict code execution in > > embedded mode just to catch and configuration stuff ups. > > > Then capture 'ps' output and post both so can compare. > > > BTW, out of the modules you are loading into Apache, if you can say > > which you think you are using. I note for example that rpaf is being > > loaded. Are you actually using that? > > > After we look at results for changes above, then we can look at what > > is the minimum set of Apache modules you need and strip those back. > > > Graham > > > On 13 August 2011 05:21, Paul Walsh <[email protected]> wrote: > > > > Oh, ok, to check MPM on Ubuntu was as simple as apache2 -V. > > > That shows me: > > > 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="/etc/apache2" > > > -D SUEXEC_BIN="/usr/lib/apache2/suexec" > > > -D DEFAULT_PIDLOG="/var/run/apache2.pid" > > > -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" > > > -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock" > > > -D DEFAULT_ERRORLOG="logs/error_log" > > > -D AP_TYPES_CONFIG_FILE="mime.types" > > > -D SERVER_CONFIG_FILE="apache2.conf" > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "modwsgi" group. > > > To view this discussion on the web visit > > >https://groups.google.com/d/msg/modwsgi/-/_jUgBgryjacJ. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]. > > > For more options, visit this group at > > >http://groups.google.com/group/modwsgi?hl=en.
-- You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.
