-scale_ram_and_cpu() {
-
- # grab info about total system ram and physical (NOT LOGICAL!) CPU cores
- avail_mem="$(LANG=C free -m | grep '^Mem:' | awk '{print $2}')"
- avail_gb=$(( $avail_mem / 950 ))
- avail_cores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | awk '{print $4}'`
- echo "Found ${avail_gb}GB of memory and $avail_cores physical CPU cores"
-
- # db_shared_buffers: 128MB for 1GB, 256MB for 2GB, or 256MB * GB, max 4096MB
- if [ "$avail_gb" -eq "1" ]
- then
- db_shared_buffers=128
- else
- if [ "$avail_gb" -eq "2" ]
- then
- db_shared_buffers=256
- else
- db_shared_buffers=$(( 256 * $avail_gb ))
- fi
- fi
- db_shared_buffers=$(( db_shared_buffers < 4096 ? db_shared_buffers : 4096 ))
-
- sed -i -e "s/^ #db_shared_buffers:.*/ db_shared_buffers: \"${db_shared_buffers}MB\"/w $changelog" $config_file
- if [ -s $changelog ]
- then
- echo "setting db_shared_buffers = ${db_shared_buffers}MB based on detected CPU/RAM"
- rm $changelog
- fi
-
-
- # UNICORN_WORKERS: 2 * GB for 2GB or less, or 2 * CPU, max 8
- if [ "$avail_gb" -le "2" ]
- then
- unicorn_workers=$(( 2 * $avail_gb ))
- else
- unicorn_workers=$(( 2 * $avail_cores ))
- fi
- unicorn_workers=$(( unicorn_workers < 8 ? unicorn_workers : 8 ))
-
- sed -i -e "s/^ #UNICORN_WORKERS:.*/ UNICORN_WORKERS: ${unicorn_workers}/w $changelog" $config_file
- if [ -s $changelog ]
- then
- echo "setting UNICORN_WORKERS = ${unicorn_workers} based on detected CPU/RAM"
- rm $changelog
- fi
-
-}
-