]> git.openstreetmap.org Git - chef.git/blob - roles/nominatim-v4.rb
Merge remote-tracking branch 'github/pull/504'
[chef.git] / roles / nominatim-v4.rb
1 name "nominatim-v4"
2 description "Role applied to all nominatim servers. For Nominatim 4."
3
4 default_attributes(
5   :accounts => {
6     :users => {
7       :lonvia => { :status => :administrator },
8       :nominatim => {
9         :status => :role,
10         :members => [:lonvia, :tomh]
11       }
12     }
13   },
14   :networking => {
15     :firewall => {
16       :http_rate_limit => "s:2/sec:15"
17     }
18   },
19   :postgresql => {
20     :settings => {
21       :defaults => {
22         :max_connections => "450",
23         :synchronous_commit => "off",
24         :checkpoint_segments => "32",
25         :checkpoint_timeout => "10min",
26         :checkpoint_completion_target => "0.9",
27         :jit => "off",
28         :shared_buffers => "2GB",
29         :autovacuum_max_workers => "1",
30         :max_parallel_workers_per_gather => "0",
31         :maintenance_work_mem => "10GB",
32         :random_page_cost => "1.5",
33         :effective_cache_size => "60GB"
34       }
35     }
36   },
37   :sysctl => {
38     :postgres => {
39       :comment => "Increase shared memory for postgres",
40       :parameters => {
41         "kernel.shmmax" => 26 * 1024 * 1024 * 1024,
42         "kernel.shmall" => 26 * 1024 * 1024 * 1024 / 4096
43       }
44     },
45     :kernel_scheduler_tune => {
46       :comment => "Tune kernel scheduler preempt",
47       :parameters => {
48         "kernel.sched_min_granularity_ns" => 10000000,
49         "kernel.sched_wakeup_granularity_ns" => 15000000
50       }
51     },
52     :swappiness => {
53       :comment => "Reduce swap usage",
54       :parameters => {
55         "vm.swappiness" => 10
56       }
57     },
58     :network_conntrack_time_wait => {
59       :comment => "Only track completed connections for 30 seconds",
60       :parameters => {
61         "net.netfilter.nf_conntrack_tcp_timeout_time_wait" => "30"
62       }
63     },
64     :network_conntrack_max => {
65       :comment => "Increase max number of connections tracked",
66       :parameters => {
67         "net.netfilter.nf_conntrack_max" => "196608"
68       }
69     }
70   },
71   :nominatim => {
72     :dbadmins => %w[lonvia tomh],
73     :tablespaces => {
74       "dosm" => "/ssd/tablespaces/dosm",
75       "iosm" => "/ssd/tablespaces/iosm",
76       "dplace" => "/ssd/tablespaces/dplace",
77       "iplace" => "/ssd/tablespaces/iplace",
78       "daddress" => "/ssd/tablespaces/daddress",
79       "iaddress" => "/ssd/tablespaces/iaddress",
80       "dsearch" => "/ssd/tablespaces/dsearch",
81       "isearch" => "/ssd/tablespaces/isearch",
82       "daux" => "/ssd/tablespaces/daux",
83       "iaux" => "/ssd/tablespaces/iaux"
84     }
85   }
86 )
87
88 run_list(
89   "recipe[nominatim::version4]"
90 )