diff --git a/defaults/main.yml b/defaults/main.yml index f319b0f..a77959c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -55,13 +55,17 @@ psql_el_scl_packages: - python-psycopg2 psql_conf_parameters: - - { name: 'max_connections', value: '100', set: 'False' } - - { name: 'shared_buffers', value: '24MB', set: 'False' } - - { name: 'temp_buffers', value: '8MB', set: 'False' } - - { name: 'work_mem', value: '1MB', set: 'False' } - - { name: 'maintenance_work_mem', value: '16MB', set: 'False' } + - { name: 'max_connections', value: '100', set: 'True' } + - { name: 'shared_buffers', value: '{{ (ansible_memtotal_mb / 4) | int }}MB', set: 'True' } + - { name: 'work_mem', value: '{{ ((ansible_memtotal_mb * 1024) / (400 * ansible_processor_vcpus)) | int }}kB', set: 'True' } + - { name: 'maintenance_work_mem', value: '{{ (ansible_memtotal_mb / 8) | int }}MB', set: 'True' } + - { name: 'temp_buffers', value: '{{ ansible_memtotal_mb }}kB', set: 'True' } + - { name: 'wal_buffers', value: '{{ (ansible_memtotal_mb / 1024 * 2) | int }}MB', set: 'True' } + - { name: 'min_wal_size', value: '{{ (ansible_memtotal_mb / 16) | int }}MB', set: 'True' } + - { name: 'max_wal_size', value: '{{ (ansible_memtotal_mb / 8) | int }}MB', set: 'True' } + - { name: 'effective_cache_size', value: '{{ (ansible_memtotal_mb / 1.3) | int }}MB', set: 'True' } - { name: 'max_stack_depth', value: '2MB', set: 'False' } - - { name: 'max_files_per_process', value: '1000', set: 'False' } + - { name: 'max_files_per_process', value: '8192', set: 'False' } # logging configuration. Important: the parameters that need a restart must be listed in psql_conf_parameters psql_log_configuration: @@ -90,6 +94,8 @@ psql_autovacuum_configuration: - { name: 'autovacuum_analyze_threshold', value: '50', set: 'True' } - { name: 'autovacuum_vacuum_scale_factor', value: '0.2', set: 'True' } - { name: 'autovacuum_vacuum_cost_limit', value: '1000', set: 'True' } + - { name: 'autovacuum_max_workers', value: '10', set: 'True' } + - { name: 'autovacuum_naptime', value: '10', set: 'True' } # SSL as a special case psql_enable_ssl: False diff --git a/tasks/configure-access.yml b/tasks/configure-access.yml index 80e51fe..b45000c 100644 --- a/tasks/configure-access.yml +++ b/tasks/configure-access.yml @@ -42,6 +42,7 @@ when: - psql_listen_on_ext_int - firewalld_enabled + tags: [ 'postgresql', 'postgres', 'pg_hba', 'pg_db', 'firewall', 'iptables_rules' ] - name: Give access to the remote postgresql client lineinfile: name={{ psql_el_conf_dir }}/pg_hba.conf regexp="^host.* {{ item.0.name }} {{ item.0.user }} {{ item.1 }}.*$" line="host {{ item.0.name }} {{ item.0.user }} {{ item.1 }} md5" owner=root group=postgres mode='0440'