cannot system() (cannot clone()) if process is > 50% of total memory, so should not...
authorGuillaume Cottenceau <gcottenc@gmail.com>
Mon, 19 Oct 2009 11:57:58 +0000 (13:57 +0200)
committerGuillaume Cottenceau <gcottenc@gmail.com>
Mon, 19 Oct 2009 11:57:58 +0000 (13:57 +0200)
bin/booh-classifier

index 44d8c71..d2f9d3f 100644 (file)
@@ -88,6 +88,14 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.") %
     end
 end
 
+def total_memory
+    meminfo = IO.readlines('/proc/meminfo').join
+    meminfo =~ /MemTotal:.*?(\d+)/ or return -1
+    memory = $1.to_i
+    meminfo =~ /SwapTotal:.*?(\d+)/ or return -1
+    return memory + $1.to_i
+end
+
 def startup_memfree
     if $startup_memfree.nil?
         meminfo = IO.readlines('/proc/meminfo').join
@@ -107,7 +115,13 @@ def set_cache_memory_use_figure
     else
         $config['cache-memory-use-figure'] = $config['cache-memory-use'].to_i
     end
-    msg 2, _("Cache memory used: %s kB") % $config['cache-memory-use-figure']
+    #- cannot fork if process is > 0.5 total memory
+    if $config['cache-memory-use-figure'] > total_memory * 0.4
+        $config['cache-memory-use-figure'] = total_memory * 0.4
+        msg 2, _("Cache memory used: %s kB (reduced because cannot exceed 50%% of total memory)") % $config['cache-memory-use-figure']
+    else
+        msg 2, _("Cache memory used: %s kB") % $config['cache-memory-use-figure']
+    end
 end
 
 def read_config