11139: Added new test to check for non-default values. Updated example config files.
authorLucas Di Pentima <lucas@curoverse.com>
Tue, 7 Mar 2017 17:52:59 +0000 (14:52 -0300)
committerLucas Di Pentima <lucas@curoverse.com>
Tue, 7 Mar 2017 17:52:59 +0000 (14:52 -0300)
services/nodemanager/doc/azure.example.cfg
services/nodemanager/doc/ec2.example.cfg
services/nodemanager/doc/gce.example.cfg
services/nodemanager/tests/test_jobqueue.py

index 0b5f1d360e8887a48637b68a94908b98160bc932..f253621ced4ecccd578eb0f810d6c8bbcc2d7dee 100644 (file)
@@ -51,6 +51,12 @@ boot_fail_after = 1800
 # an Arvados node that hasn't been updated for this long.
 node_stale_after = 14400
 
+# Scaling factor to be applied to nodes' available RAM size. Usually there's a
+# variable discrepancy between the advertised RAM value on cloud nodes and the
+# actual amount available.
+# If not set, this value will be set to 0.95
+node_mem_scaling = 0.95
+
 # File path for Certificate Authorities
 certs_file = /etc/ssl/certs/ca-certificates.crt
 
index 1c33bfd4578b62e403a057de3787c44caa198be4..b25bf940cf4564a9da43b254c08812b74bf8f528 100644 (file)
@@ -51,6 +51,12 @@ boot_fail_after = 1800
 # an Arvados node that hasn't been updated for this long.
 node_stale_after = 14400
 
+# Scaling factor to be applied to nodes' available RAM size. Usually there's a
+# variable discrepancy between the advertised RAM value on cloud nodes and the
+# actual amount available.
+# If not set, this value will be set to 0.95
+node_mem_scaling = 0.95
+
 # File path for Certificate Authorities
 certs_file = /etc/ssl/certs/ca-certificates.crt
 
index 06fcdff1552de44f95f4ea263b0e6d63db4d3409..ed7bdc3b3d7d9b423b217c3057f83b0ef86823bc 100644 (file)
@@ -40,6 +40,12 @@ poll_stale_after = 600
 # an Arvados node that hasn't been updated for this long.
 node_stale_after = 14400
 
+# Scaling factor to be applied to nodes' available RAM size. Usually there's a
+# variable discrepancy between the advertised RAM value on cloud nodes and the
+# actual amount available.
+# If not set, this value will be set to 0.95
+node_mem_scaling = 0.95
+
 # File path for Certificate Authorities
 certs_file = /etc/ssl/certs/ca-certificates.crt
 
index 2c430526129e526115f4c71270a0ae90e80ea81d..c20313913bbd79a18f8d6969d0e18ad57afa9db2 100644 (file)
@@ -35,6 +35,15 @@ class ServerCalculatorTestCase(unittest.TestCase):
         servlist = self.calculate(servcalc, {'min_ram_mb_per_node': 121})
         self.assertEqual(1, len(servlist))
 
+    def test_custom_node_mem_scaling_factor(self):
+        # Simulate a custom 'node_mem_scaling' config parameter by passing
+        # the value to ServerCalculator
+        servcalc = self.make_calculator([1], node_mem_scaling=0.5)
+        servlist = self.calculate(servcalc, {'min_ram_mb_per_node': 128})
+        self.assertEqual(0, len(servlist))
+        servlist = self.calculate(servcalc, {'min_ram_mb_per_node': 64})
+        self.assertEqual(1, len(servlist))
+
     def test_implicit_server_count(self):
         servcalc = self.make_calculator([1])
         servlist = self.calculate(servcalc, {}, {'min_nodes': 3})