Created
September 24, 2023 13:39
-
-
Save oppara/e1a5b798db6bacd8dee70c084b3c677c to your computer and use it in GitHub Desktop.
ApacheのMPMの設定において、MaxClientsに設定できる上限値を計算するシェルスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
_PIDS=(`pgrep httpd`) | |
_PROC_COUNT=${#_PIDS[@]} | |
_MEMORY_TOTAL=`free | grep Mem | awk '{print $2;};'` | |
#_MEMORY_FREE=`vmstat -a | awk 'NR==3{print $4+$5;};'` | |
_RSS_TOTAL=0 | |
_SHARED_TOTAL=0 | |
for _PID in ${_PIDS[@]}; do | |
_SMAPS=`cat /proc/$_PID/smaps` | |
_RSS=`echo "$_SMAPS" | grep Rss | awk '{value += $2} END {print value;};'` | |
_SHARED=`echo "$_SMAPS" | grep Shared | awk '{value += $2} END {print value;};'` | |
_RSS_TOTAL=`expr $_RSS_TOTAL + $_RSS` | |
_SHARED_TOTAL=`expr $_SHARED_TOTAL + $_SHARED` | |
done | |
_RSS_AVERAGE=`expr $_RSS_TOTAL / $_PROC_COUNT` | |
_SHARED_AVERAGE=`expr $_SHARED_TOTAL / $_PROC_COUNT` | |
_PROC_MEMORY=`expr $_RSS_AVERAGE - $_SHARED_AVERAGE` | |
#_MIN_MAX_CLIENTS=`expr $_MEMORY_FREE / $_PROC_MEMORY` | |
_MAX_MAX_CLIENTS=`expr $_MEMORY_TOTAL / $_PROC_MEMORY` | |
echo "Memory Total / (Rss Average - Shr Average) = $_MEMORY_TOTAL / ($_RSS_AVERAGE - $_SHARED_AVERAGE)" | |
#echo "Memory Free / (Rss Average - Shr Average) = $_MEMORY_FREE / ($_RSS_AVERAGE - $_SHARED_AVERAGE)" | |
#echo "MaxClients = $_MIN_MAX_CLIENTS ~ $_MAX_MAX_CLIENTS" | |
echo "MaxClients = $_MAX_MAX_CLIENTS" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
2011-05-19 22:49
Apacheチューニング: MaxClientsに設定できる上限値を計算する - (DxD)∞