]> git.openstreetmap.org Git - chef.git/commitdiff
Add a library routine to get the CPU core count
authorTom Hughes <tom@compton.nu>
Sat, 3 Dec 2022 15:46:10 +0000 (15:46 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 3 Dec 2022 15:46:34 +0000 (15:46 +0000)
cookbooks/chef/libraries/cpu.rb [new file with mode: 0644]
cookbooks/community/templates/default/web_only.yml.erb
cookbooks/stateofthemap/recipes/jekyll.rb
cookbooks/tile/templates/default/render-lowzoom.erb
cookbooks/tile/templates/default/renderd.conf.erb
cookbooks/tile/templates/default/update-lowzoom.erb

diff --git a/cookbooks/chef/libraries/cpu.rb b/cookbooks/chef/libraries/cpu.rb
new file mode 100644 (file)
index 0000000..a7992a4
--- /dev/null
@@ -0,0 +1,11 @@
+module OpenStreetMap
+  module Mixin
+    module CPU
+      def cpu_cores
+        [self.dig("cpu", "total").to_i, self.dig("cpu", "cores").to_i, 4].max
+      end
+    end
+  end
+end
+
+Chef::Node.include(OpenStreetMap::Mixin::CPU)
index f3f58bb6e59c369bc156e6d854d9ef68e686a3fa..4407553c98c8495676ab75da70058549ae04d3c6 100644 (file)
@@ -32,7 +32,7 @@ env:
 
   ## How many concurrent web requests are supported? Depends on memory and CPU cores.
   ## will be set automatically by bootstrap based on detected CPUs, or you can override
-  UNICORN_WORKERS: <%= [2, node.dig('cpu', 'total').to_i, node.dig('cpu', 'cores').to_i].max %>
+  UNICORN_WORKERS: <%= node.cpu_cores %>
 
   ## TODO: The domain name this Discourse instance will respond to
   DISCOURSE_HOSTNAME: community.openstreetmap.org
index fa2545e5fedbb466c6f3bdaed9186c81e9447320..a57d230b6771b7ba7493d5fd01f9ca156d40163a 100644 (file)
@@ -58,7 +58,7 @@ apache_module "rewrite"
 
   bundle_install "/srv/#{year}.stateofthemap.org" do
     action :nothing
-    options "--deployment --jobs #{[4, node.dig('cpu', 'total').to_i, node.dig('cpu', 'cores').to_i].max}"
+    options "--deployment --jobs #{node.cpu_cores}"
     user "root"
     group "root"
     notifies :run, "bundle_exec[/srv/#{year}.stateofthemap.org]"
index 779730d1e8ead6785fe3579afc4ccd40f1183ca3..834eecc3040b79ea0b00b7e341de2e404ff3b39d 100644 (file)
@@ -16,9 +16,9 @@ function update_<%= style %>
     --timestamp=${timestamp} \
     --tile-dir=/srv/tile.openstreetmap.org/tiles \
     --socket=/var/run/renderd/renderd.sock \
-    --num-threads=<%= [4, node.dig('cpu', 'total').to_i - 1, node.dig('cpu', 'cores').to_i - 1].max %> \
+    --num-threads=<%= node.cpu_cores - 1 %> \
     --map="<%= style %>" \
-    --max-load=<%= [4, node.dig('cpu', 'total').to_i, node.dig('cpu', 'cores').to_i].max %> \
+    --max-load=<%= node.cpu_cores - 1 %> \
     --min-zoom=0 --max-zoom=12
 }
 
index 60206d1ceb09f1a578fde9ed003e9acf41466f28..d29c58aa7728f9512a6fe22d2dac67269319ed9e 100644 (file)
@@ -2,7 +2,7 @@
 
 [renderd]
 socketname=/var/run/renderd/renderd.sock
-num_threads=<%= [4, node.dig('cpu', 'total').to_i - 1, node.dig('cpu', 'cores').to_i - 1].max %>
+num_threads=<%= node.cpu_cores - 1 %>
 tile_dir=/srv/tile.openstreetmap.org/tiles
 stats_file=/var/run/renderd/renderd.stats
 
index 4f2821dba4ead51c6674a1dffc4ec07538ba5495..81e138076b72066581124f1225c8f5557880172c 100644 (file)
@@ -12,9 +12,9 @@ function update_tiles
     --timestamp=$(stat -c %Y "/srv/tile.openstreetmap.org/styles/<%= @style %>/project.xml") \
     --tile-dir=/srv/tile.openstreetmap.org/tiles \
     --socket=/var/run/renderd/renderd.sock \
-    --num-threads=<%= [4, node.dig('cpu', 'total').to_i - 1, node.dig('cpu', 'cores').to_i - 1].max %> \
+    --num-threads=<%= node.cpu_cores - 1 %> \
     --map="<%= @style %>" \
-    --max-load=<%= [4, node.dig('cpu', 'total').to_i, node.dig('cpu', 'cores').to_i].max %> \
+    --max-load=<%= node.cpu_cores - 1 %> \
     --min-zoom=0 --max-zoom=12
 }