Hello,

In case something hogs the workers, until you figure out what and solve it:

MaxConnectionsPerChild 0 # inifinite connections per child so apache
does not try to gracefully shut them down.
MaxSpareThreads = MaxRequestWorkers

Never do a graceful restart.

This is what I had to do in production with certain older version of
apache in which mod_weblogic would cause the same behaviour you
describe

Cheers

El lun, 28 nov 2022 a las 5:28, Mike Dewhirst
(<mi...@dewhirst.com.au>) escribió:
>
> On 28/11/2022 12:09 pm, Mike Dewhirst wrote:
>
> On 26/11/2022 11:41 am, Mike Dewhirst wrote:
>
> On 24/11/2022 6:48 pm, Daniel Ferradal wrote:
>
> Some script is probably hogging the workers and not letting them close so if 
> you must, just restart, but judging by the amount of traffic you seem to have 
> at the time I would truncate in logrotate and not restart or reload the 
> server at all.
>
>
> I run a Python script on the production machine to delete the entire site 
> (including directory structure) then redeploy everything from the repo 
> whenever anything changes.
>
> On the basis that Apache (mod-wsgi) only reads the files once on reload, if 
> they also had the dead finger of my script or perhaps the Python interpreter 
> hanging on, that may well have "hogged" the workers.
>
> That script now restarts Apache instead of reload.
>
> I have now adjusted the logrotate script to avoid reload/restart logging 
> status as follows:
>
> /var/log/apache2/*.log {
>     daily
>     missingok
>     rotate 14
>     compress
>     delaycompress
>     notifempty
>     copytruncate
>     sharedscripts
>     prerotate
>     if [ -d /etc/logrotate.d/httpd-prerotate ]; then
>         run-parts /etc/logrotate.d/httpd-prerotate
>     fi
>     endscript
>     postrotate
>     if pgrep -f ^/usr/sbin/apache2 > /dev/null; then
>         invoke-rc.d apache2 status 2>&1 | logger -t apache2.logrotate
>     fi
>     endscript
> }
>
>
> ... and left the mpm-event settings as follows:
>
> <IfModule mpm_event_module>
>         ServerLimit                     32                 # Thanks Eric 
> Covener
>         StartServers                    16
>         MinSpareThreads                 400
>         MaxSpareThreads                 250
>         ThreadLimit                     64
>         ThreadsPerChild                 50
>         AsyncRequestWorkerFactor        2
>         MaxRequestWorkers               800
>         MaxConnectionsPerChild          0
> </IfModule>
>
> I restarted the entire machine
>
> Next logrotate is 00:00 UTC -- I'll report tomorrow.
>
>
> Zero bytes in the error log since Saturday when I sent the above email.
>
> That covers the period with copytruncate in the Apache logrotate conf.
>
> I haven't updated the site so no restarts from me.
>
> I'll adjust the deployment script back to reload instead of restart before my 
> next deployment and report back.
>
>
> Errors recommence as follows:
>
> ... not an error but the reload after a deployment script run...
>
> [Mon Nov 28 01:17:06.605572 2022] [mpm_event:notice] [pid 920:tid 
> 140638735415168] AH00493: SIGUSR1 received.  Doing graceful restart
> [Mon Nov 28 01:17:06.699315 2022] [mpm_event:notice] [pid 920:tid 
> 140638735415168] AH00489: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 mod_wsgi/4.9.0 
> Python/3.10 configured -- resuming normal operations
> [Mon Nov 28 01:17:06.699345 2022] [core:notice] [pid 920:tid 140638735415168] 
> AH00094: Command line: '/usr/sbin/apache2'
>
> ... lengthy period ensues with no errors followed by another deployment 
> reload ...
>
> [Mon Nov 28 03:16:44.368563 2022] [mpm_event:notice] [pid 920:tid 
> 140638735415168] AH00493: SIGUSR1 received.  Doing graceful restart
> [Mon Nov 28 03:16:44.502990 2022] [mpm_event:notice] [pid 920:tid 
> 140638735415168] AH00489: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 mod_wsgi/4.9.0 
> Python/3.10 configured -- resuming normal operations
> [Mon Nov 28 03:16:44.503027 2022] [core:notice] [pid 920:tid 140638735415168] 
> AH00094: Command line: '/usr/sbin/apache2'
>
> ... another deployment script reload after a period with no errors ...
>
> [Mon Nov 28 04:08:02.215591 2022] [mpm_event:notice] [pid 920:tid 
> 140638735415168] AH00493: SIGUSR1 received.  Doing graceful restart
> [Mon Nov 28 04:08:02.319672 2022] [mpm_event:notice] [pid 920:tid 
> 140638735415168] AH00489: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 mod_wsgi/4.9.0 
> Python/3.10 configured -- resuming normal operations
> [Mon Nov 28 04:08:02.319713 2022] [core:notice] [pid 920:tid 140638735415168] 
> AH00094: Command line: '/usr/sbin/apache2'
>
> ... but two seconds later ...
>
> [Mon Nov 28 04:08:04.324587 2022] [mpm_event:error] [pid 920:tid 
> 140638735415168] AH03490: scoreboard is full, not at 
> MaxRequestWorkers.Increase ServerLimit.
>
> ... followed by more of the same at approximately 1 second intervals ...
>
> [Mon Nov 28 04:15:30.915730 2022] [mpm_event:error] [pid 920:tid 
> 140638735415168] AH03490: scoreboard is full, not at 
> MaxRequestWorkers.Increase ServerLimit.
>
> About to revert my deployment script to restart Apache instead of reload ...
>
> Not sure what else I can do?
>
> Cheers
>
> Mike
>
>
>
> Cheers
>
> Mike
>
> --
> Signed email is an absolute defence against phishing. This email has
> been signed with my private key. If you import my public key you can
> automatically decrypt my signature and be sure it came from me. Just
> ask and I'll send it to you. Your email software can handle signing.
>
>
> --
> Signed email is an absolute defence against phishing. This email has
> been signed with my private key. If you import my public key you can
> automatically decrypt my signature and be sure it came from me. Just
> ask and I'll send it to you. Your email software can handle signing.
>
>
> --
> Signed email is an absolute defence against phishing. This email has
> been signed with my private key. If you import my public key you can
> automatically decrypt my signature and be sure it came from me. Just
> ask and I'll send it to you. Your email software can handle signing.



-- 
Daniel Ferradal
HTTPD Project
#httpd help at Libera.Chat

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to