]> git.openstreetmap.org Git - chef.git/blob - roles/nominatim.rb
community: Increase postgres connections, tweak mem and buffers
[chef.git] / roles / nominatim.rb
1 name "nominatim"
2 description "Role applied to all nominatim servers."
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_timeout => "10min",
25         :checkpoint_completion_target => "0.9",
26         :jit => "off",
27         :shared_buffers => "2GB",
28         :autovacuum_max_workers => "1",
29         :max_parallel_workers_per_gather => "0",
30         :maintenance_work_mem => "10GB",
31         :seq_page_cost => "3.0",
32         :random_page_cost => "3.0",
33         :effective_cache_size => "60GB",
34         :wal_level => "minimal",
35         :max_wal_senders => "0"
36       }
37     }
38   },
39   :sysctl => {
40     :postgres => {
41       :comment => "Increase shared memory for postgres",
42       :parameters => {
43         "kernel.shmmax" => 26 * 1024 * 1024 * 1024,
44         "kernel.shmall" => 26 * 1024 * 1024 * 1024 / 4096
45       }
46     },
47     :swappiness => {
48       :comment => "Reduce swap usage",
49       :parameters => {
50         "vm.swappiness" => 10
51       }
52     },
53     :network_conntrack_time_wait => {
54       :comment => "Only track completed connections for 30 seconds",
55       :parameters => {
56         "net.netfilter.nf_conntrack_tcp_timeout_time_wait" => "30"
57       }
58     },
59     :network_conntrack_max => {
60       :comment => "Increase max number of connections tracked",
61       :parameters => {
62         "net.netfilter.nf_conntrack_max" => "196608"
63       }
64     }
65   },
66   :nominatim => {
67     :dbadmins => %w[lonvia tomh],
68     :tablespaces => {
69       "dosm" => "/ssd/tablespaces/dosm",
70       "iosm" => "/ssd/tablespaces/iosm",
71       "dplace" => "/ssd/tablespaces/dplace",
72       "iplace" => "/ssd/tablespaces/iplace",
73       "daddress" => "/ssd/tablespaces/daddress",
74       "iaddress" => "/ssd/tablespaces/iaddress",
75       "dsearch" => "/ssd/tablespaces/dsearch",
76       "isearch" => "/ssd/tablespaces/isearch",
77       "daux" => "/ssd/tablespaces/daux",
78       "iaux" => "/ssd/tablespaces/iaux"
79     }
80   }
81 )
82
83 run_list(
84   "recipe[nominatim::default]"
85 )