Fix code that tests for RAM and Swap size
authorJay Pfaffman <pfaffman@relaxpc.com>
Tue, 6 Sep 2016 20:36:04 +0000 (20:36 +0000)
committerJay Pfaffman <pfaffman@relaxpc.com>
Tue, 6 Sep 2016 20:36:04 +0000 (20:36 +0000)
Works on DO .5, 1, 2, 4 GB

discourse-setup

index 94a90b5d1e0ea96cdbc0d45b144be427826d1c60..69c5df5808ab434d2a5d44b6e10d1656ec793d1b 100755 (executable)
@@ -15,19 +15,19 @@ check_root() {
 ##
 check_disk_and_memory() {
   
-  avail_mem="$(LANG=C free -m | grep '^Mem:' | awk '{print $2}')"
-  if [ "$avail_mem" -lt 900 ]; then
+  avail_mem=`free -g --si | awk ' /Mem:/  {print $2} '`
+  if [ "$avail_mem" -lt 1 ]; then
     echo "WARNING: Discourse requires 1GB RAM to run. This system does not appear"
     echo "to have sufficient memory."
     echo
     echo "Your site may not work properly, or future upgrades of Discourse may not"
     echo "complete successfully."
-    exit 1
+    echo exit 1
   fi
     
-  if [ "$avail_mem" -lt 1800 ]; then
-    total_swap="$(LANG=C free -m | grep ^Swap: | awk '{print $2}')"
-    if [ "$total_swap" -lt 1000 ]; then
+  if [ "$avail_mem" -lt 2 ]; then
+    total_swap=`free -g --si | awk ' /Swap:/  {print $2} '`
+    if [ "$total_swap" -lt 2 ]; then
       echo "WARNING: Discourse requires at least 2GB of swap when running with less "
       echo "than 2GB of RAM. This system does not appear to have sufficient swap space."
       echo
@@ -47,8 +47,8 @@ check_disk_and_memory() {
       sysctl -w vm.swappiness=10
       echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
 
-      total_swap="$(LANG=C free -m | grep ^Swap: | awk '{print $2}')"
-      if [ "$total_swap" -lt 1000 ]; then
+      total_swap=`free -g --si | awk ' /Swap:/ {print $2} '`
+      if [ "$total_swap" -lt 2 ]; then
         echo "Failed to create swap, sorry!"
         exit 1
       fi
@@ -56,6 +56,7 @@ check_disk_and_memory() {
     fi
   fi
 
+
   free_disk="$(df /var | tail -n 1 | awk '{print $4}')"
   if [ "$free_disk" -lt 5000 ]; then
     echo "WARNING: Discourse requires at least 5GB free disk space. This system"
@@ -81,8 +82,7 @@ scale_ram_and_cpu() {
 
   local changelog=/tmp/changelog.$PPID
   # 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_gb="$(LANG=C free -g --si | grep '^Mem:' | awk '{print $2}')"
   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"