]> git.openstreetmap.org Git - chef.git/commitdiff
Limit the number of threads used for low zoom renders
authorTom Hughes <tom@compton.nu>
Thu, 14 Dec 2023 17:43:25 +0000 (17:43 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 14 Dec 2023 17:43:41 +0000 (17:43 +0000)
cookbooks/tile/recipes/default.rb
cookbooks/tile/templates/default/render-lowzoom.erb
cookbooks/tile/templates/default/update-lowzoom.erb

index 40486dac6ea5ab7a1bdd68f07b06485e26716074..4ceba4a184466522b7bb748fe491e9571d8e339b 100644 (file)
@@ -282,6 +282,8 @@ end
 
 nodejs_package "carto"
 
+lowzoom_threads = [node.cpu_cores - 1, node[:memory][:total].to_f / 4194304].min.floor
+
 systemd_service "update-lowzoom@" do
   description "Low zoom tile update service for %i layer"
   user "tile"
@@ -312,7 +314,7 @@ node[:tile][:styles].each do |name, details|
     owner "root"
     group "root"
     mode "755"
-    variables :style => name
+    variables :style => name, :threads => lowzoom_threads
   end
 
   service "update-lowzoom@#{name}" do
@@ -606,6 +608,7 @@ template "/usr/local/bin/render-lowzoom" do
   owner "root"
   group "root"
   mode "755"
+  variables :threads => lowzoom_threads
 end
 
 systemd_service "render-lowzoom" do
index 834eecc3040b79ea0b00b7e341de2e404ff3b39d..eb3e2e84e2fcb7691e8ff59c4668bdad0988eb3f 100644 (file)
@@ -16,7 +16,7 @@ function update_<%= style %>
     --timestamp=${timestamp} \
     --tile-dir=/srv/tile.openstreetmap.org/tiles \
     --socket=/var/run/renderd/renderd.sock \
-    --num-threads=<%= node.cpu_cores - 1 %> \
+    --num-threads=<%= @threads %> \
     --map="<%= style %>" \
     --max-load=<%= node.cpu_cores - 1 %> \
     --min-zoom=0 --max-zoom=12
index 81e138076b72066581124f1225c8f5557880172c..0455493d993bc2f2a2830d63eab95228fc84a4b4 100644 (file)
@@ -12,7 +12,7 @@ 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=<%= node.cpu_cores - 1 %> \
+    --num-threads=<%= @threads %> \
     --map="<%= @style %>" \
     --max-load=<%= node.cpu_cores - 1 %> \
     --min-zoom=0 --max-zoom=12