#!/bin/sh #Reinis php-fpm-max_children Calc ################################################################# #php-fpm version ermitteln ver=php-fpm`ps aux|grep php-fpm|grep master|cut -f4 -d"/"` #php-fpm*Number* eruieren echo read -p"Soll $ver verwendet werden? (j/n) " einga if [ "$einga" = "n" ] then echo "php-fpm-Version eingeben: " read ver fi echo "----------------------------------------------------" ################################################################# #php-fpm-version testen ps --noheader -o "rss,cmd" -C $ver 1> /dev/null #Filter auf fpm Prozess x=`echo $?` if [ "$x" = "1" ] then echo "$ver exestiert nicht, oder hat keine laufenden Prozesse!" exit fi ################################################################# #durchschnittlichen Byte-Bedarf pro php-fpm Prozess errechnen durchschnitt=`ps --no-header -o "rss,cmd" -C $ver|awk '{ sum+=$1 } END { printf ("%d%s\n",sum/NR*1024,"") }'` durchkb=`ps --no-header -o "rss,cmd" -C $ver|awk '{ sum+=$1 } END { printf ("%d%s\n",sum/NR,"kb") }'` echo "Der durchschnittliche Bedarf an Speicher betraegt pro php-fpm Prozess $durchkb" read -p"$durchkb zur Berechnung verwenden oder Angabe in kb: " durcheinga if [ "$durcheinga" != "" ] then durchschnitt=`echo "$durcheinga*1024"|bc -l` durchkb=$durcheinga"kb" fi echo "----------------------------------------------------" ################################################################# #Momentaner Gesamt-Speicher-Verbrauch fuer fpm berechnen fpmgesmb=`ps --no-header -o "rss,cmd" -C $ver|awk '{ sum+=$1 } END { printf ("%d%s\n",sum/1024,"") }'` #von fpm verwendet gesamt in MB fpmgesa=`ps --no-header -o "rss,cmd" -C $ver|awk '{ sum+=$1 } END { printf ("%d%s\n",sum*1024,"") }'` #von fpm verwendet gesamt in Byte akt=`cat /proc/meminfo|grep Activ|head -n1|awk '{ print $2 }'` #Momentan aktiv verwendeter Speicher in KB aktiv=`echo "$akt*1024"|bc -l` #Momentan aktiv verwendeter Speicher in Byte aktivb=`echo "scale=0;$akt/1024"|bc -l` #Momentan aktiv verwendeter Speicher in MB ################################################################# #System-Gesamt-Speicher ermitteln ges=`head -n1 /proc/meminfo|awk '{ print $2 }'` #Gesamtspeicher in KB gesa=`echo "$ges*1024"|bc -l` #Gesamtspeicher in Byte gesb=`echo "scale=0;$ges/1024"|bc -l` #Gesamtspeicher in MB ################################################################# #Speicher-Empfehlung errechnen speicherempf=`echo "scale=0;($gesa-$aktiv-$fpmgesa)/1024/1024"|bc -l` #Wieviel Byte-Speicher soll für System reserviert werden? echo "Reservierter Speicher für System im MB: " read -p"Empfohlene $speicherempf""MB verwenden oder Angabe in MB: " res if [ "$res" = "" ] then res=$speicherempf gatest=j fi echo "----------------------------------------------------" resa=`echo "$res*1024*1024"|bc -l` ################################################################# #Errechnen einer empfohlenen Anzahl pm.max_children empf=`echo "scale=0;($gesa-$resa)/$durchschnitt"|bc -l` echo "Es werden $empf pm.max_children empfohlen wenn von ""$gesb""MB Speicher ""$res""MB Speicher reserviert werden" echo "und der durchschnittliche Speicherbedarf eines fpm Prozesses bei ""$durchkb"" liegt." ################################################################# #Graphic-check if [ "$gatest" = "j" ]&&[ "$granz" != "0" ] then granz=`ps axo "tty"|grep tty|wc -l` grasum=`ps axo "rss,tty"|grep tty|awk '{ sum+=$1 } END { printf ("%d%s\n",sum/1024,"MB") }'` echo "----------------------------------------------------" echo "-- ACHTUNG -- $granz Grapische Prozesse, welche in Summe $grasum verwenden wurden in die Berechnung miteinbezogen! -- ACHTUNG --" fi