Compare commits

...

4 commits

Author SHA1 Message Date
mwiegand
4530a34175 home.server more cores 2022-06-23 02:13:47 +02:00
mwiegand
b8100f472b zfs zfs_arc_max 2022-06-23 02:13:06 +02:00
mwiegand
9b104cac25 php pm more procasses 2022-06-23 02:12:33 +02:00
mwiegand
7243ad9e9b storage classes 2022-06-23 02:12:11 +02:00
5 changed files with 52 additions and 13 deletions

View file

@ -141,10 +141,10 @@ def www_conf(metadata):
'listen.owner': 'www-data', 'listen.owner': 'www-data',
'listen.group': 'www-data', 'listen.group': 'www-data',
'pm': 'dynamic', 'pm': 'dynamic',
'pm.max_children': '30', 'pm.max_children': '32',
'pm.start_servers': '10', 'pm.start_servers': '16',
'pm.min_spare_servers': '5', 'pm.min_spare_servers': '8',
'pm.max_spare_servers': '10', 'pm.max_spare_servers': '16',
'pm.max_requests': '500', 'pm.max_requests': '500',
}, },
}, },

View file

@ -6,7 +6,7 @@ directories = {
'group': 'postgres', 'group': 'postgres',
'needs': [ 'needs': [
'pkg_apt:postgresql', 'pkg_apt:postgresql',
'zfs_dataset:tank/postgresql', f"zfs_dataset:{node.metadata.get('zfs/storage_classes/ssd')}/postgresql",
], ],
'needed_by': [ 'needed_by': [
'svc_systemd:postgresql', 'svc_systemd:postgresql',

View file

@ -1,3 +1,6 @@
from importlib.metadata import metadata
root_password = repo.vault.password_for(f'{node.name} postgresql root') root_password = repo.vault.password_for(f'{node.name} postgresql root')
defaults = { defaults = {
@ -23,13 +26,22 @@ defaults = {
'grafana_rows': set(), 'grafana_rows': set(),
} }
if node.has_bundle('zfs'):
defaults['zfs'] = { @metadata_reactor.provides(
'datasets': { 'zfs/datasets',
'tank/postgresql': { )
'mountpoint': '/var/lib/postgresql', def zfs(metadata):
'recordsize': '8192', if not node.has_bundle('zfs'):
'atime': 'off', return {}
return {
'zfs': {
'datasets': {
f"{metadata.get('zfs/storage_classes/ssd')}/postgresql": {
'mountpoint': '/var/lib/postgresql',
'recordsize': '8192',
'atime': 'off',
},
}, },
}, },
} }

View file

@ -78,9 +78,13 @@ defaults = {
'datasets': {}, 'datasets': {},
'pools': {}, 'pools': {},
'kernel_params': {}, 'kernel_params': {},
'storage_classes': {
'ssd': 'tank',
},
}, },
} }
@metadata_reactor.provides( @metadata_reactor.provides(
'zfs/datasets' 'zfs/datasets'
) )
@ -132,3 +136,23 @@ def headers(metadata):
}, },
}, },
} }
@metadata_reactor.provides(
'zfs/kernel_params/zfs_arc_max',
)
def arc_size(metadata):
arc_percent = metadata.get('zfs/zfs_arc_max_percent', None)
if arc_percent:
return {
'zfs': {
'kernel_params': {
'zfs_arc_max': str(int(
metadata.get('vm/ram') * 1024 * 1024 * (arc_percent/100)
)),
},
},
}
else:
return {}

View file

@ -119,7 +119,7 @@
}, },
}, },
'vm': { 'vm': {
'cores': 2, 'cores': 16,
'ram': 32384, 'ram': 32384,
}, },
'wireguard': { 'wireguard': {
@ -136,6 +136,9 @@
}, },
'zfs': { 'zfs': {
'zfs_arc_max_percent': 75, 'zfs_arc_max_percent': 75,
'storage_classes': {
'ssd': 'ssd',
},
'pools': { 'pools': {
'tank': { 'tank': {
'type': 'mirror', 'type': 'mirror',