Apache/performance: Difference between revisions
initial draft |
No edit summary |
||
| Line 13: | Line 13: | ||
Or you can edit <code>/mods.enabled/status</code> to get it from the browser. For a machine readable, condensed version, just append the '''auto''' querystring argument: | Or you can edit <code>/mods.enabled/status</code> to get it from the browser. For a machine readable, condensed version, just append the '''auto''' querystring argument: | ||
e.g. http://example.com/server-status?auto | e.g. http://example.com/server-status?auto | ||
== Killing Stuck Processes == | |||
[http://giantdorks.org/alain/script-to-individually-terminate-stuck-web-server-threads-without-restarting-apache/ This script from Alain Kelder] shows how you can identify and kill long-running processes without restarting Apache. I ran into this problem with a misbehaving Mantis plugin. | |||
<source lang="bash"> | |||
#/bin/bash | |||
GetAllWorkers() | |||
{ | |||
AllWorkers=$(apache2ctl fullstatus | awk '/^Srv /,/^$/ {print}') | |||
} | |||
GetStuckWorkers() | |||
{ | |||
StuckWorkers=$(echo "$AllWorkers" | awk '$4 == "W" && $6 > 60 && $7 == 0 && $8 == "0.0" {print}') | |||
header=$(echo "$AllWorkers" | head -n 1) | |||
} | |||
GetStuckPIDs() | |||
{ | |||
StuckPIDs=$(echo "$AllWorkers" | awk '$4 == "W" && $6 > 60 && $7 == 0 && $8 == "0.0" {print$2}') | |||
} | |||
Show() | |||
{ | |||
echo "--------------------------------" | |||
echo " Stopped on $(date +%F\ %T)" | |||
echo "--------------------------------" | |||
echo "$header" | |||
echo "$StuckWorkers" | |||
} | |||
GetAllWorkers && GetStuckPIDs | |||
if [ -n "$StuckPIDs" ]; then | |||
for PID in $StuckPIDs; do | |||
echo stopping $PID with SIGTERM | |||
kill $PID | |||
done | |||
GetStuckWorkers | |||
Show | mail -s "$(basename $0) executed on $(hostname -s)" root | |||
Show >> /path/to/ksaw.log | |||
fi | |||
</source> | |||
== Resources == | == Resources == | ||
# https://httpd.apache.org/docs/2.4/misc/perf-tuning.html | # https://httpd.apache.org/docs/2.4/misc/perf-tuning.html | ||
# https://www.linode.com/docs/websites/apache-tips-and-tricks/tuning-your-apache-server | # https://www.linode.com/docs/websites/apache-tips-and-tricks/tuning-your-apache-server | ||
[[Category:Apache]] | |||
[[Category:Webserver]] | |||
[[Category:Bash]] | |||
[[Category:System Administration]] | |||