Ok, thanks for this advice Daniel.

Le lun. 28 nov. 2022 à 21:53, Daniel Ferradal <dferra...@apache.org> a
écrit :

> 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