Compare commits

...

3 Commits

5 changed files with 71 additions and 23 deletions

View File

@ -10,6 +10,8 @@ nextcloud_data_path: "{{ nextcloud_basepath }}/data"
nextcloud_storage_path: "{{ nextcloud_basepath }}/storage"
nextcloud_fpm_config_path: "{{ nextcloud_basepath }}/fpm-config"
nextcloud_background_job_mode: cron
nextcloud_database_type: sqlite
nextcloud_database_name: nextcloud
nextcloud_database_user: nextcloud
@ -56,3 +58,22 @@ nextcloud_paths:
mode: "0770"
owner: "{{ nextcloud_user_info.uid|default(nextcloud_user) }}"
group: "root"
# PHP OpCache tuning
nextcloud_opcache_enable: 1
nextcloud_opcache_interned_strings_buffer_mb: 32
nextcloud_opcache_max_accelerated_files: 32531
nextcloud_opcache_memory_consumption_mb: 256
nextcloud_opcache_fast_shutdown: 1
nextcloud_opcache_save_comments: 1
nextcloud_opcache_revalidate_freq: 1
nextcloud_opcache_validate_timestamps: 0
# FPM config
nextcloud_fpm_max_children: 64
nextcloud_fpm_start_servers: "{{ nextcloud_fpm_max_children / 2 | int }}"
nextcloud_fpm_min_spare_servers: "{{ nextcloud_fpm_max_children / 4 | int }}"
nextcloud_fpm_max_spare_servers: "{{ nextcloud_fpm_max_children * 3/4 | int }}"
nextcloud_php_memory_limit: 1024M
nextcloud_php_upload_limit: 1024M

View File

@ -70,6 +70,7 @@
mode: "0640"
owner: root
group: root
when: nextcloud_background_job_mode == 'cron'
notify:
- reload-systemd
@ -80,22 +81,12 @@
mode: "0640"
owner: root
group: root
when: nextcloud_background_job_mode == 'cron'
notify:
- reload-systemd
- meta: flush_handlers
- name: Enable systemd timer for nextcloud cron
systemd:
name: "nextcloud-cron.timer"
enabled: yes
- name: Ensure systemd timer for nextcloud cron is started
systemd:
name: "nextcloud-cron.timer"
state: started
- name: Ensure docker container for nextcloud is running
docker_container:
name: "{{ nextcloud_container_name }}"
@ -107,3 +98,35 @@
purge_networks: "{{ nextcloud_container_purge_other_networks }}"
restart_policy: "{{ nextcloud_container_restart_policy }}"
state: started
- name: Enable systemd timer for nextcloud cron
systemd:
name: "nextcloud-cron.timer"
enabled: yes
when: nextcloud_background_job_mode == 'cron'
- name: Ensure systemd timer for nextcloud cron is started
systemd:
name: "nextcloud-cron.timer"
state: started
when: nextcloud_background_job_mode == 'cron'
- name: Check nextcloud background job mode
community.docker.docker_container_exec:
container: "{{ nextcloud_container_name }}"
command: "{{ nextcloud_occ_command }} config:app:get core backgroundjobs_mode"
user: "{{ nextcloud_user_info.uid }}"
tty: yes
register: nextcloud_current_backgroundjob_mode
# As nextcloud might still be starting, retry this task
retries: 5
delay: 5
changed_when: false
- name: Set nextcloud background job mode to {{ nextcloud_background_job_mode }}
community.docker.docker_container_exec:
container: "{{ nextcloud_container_name }}"
command: "{{ nextcloud_occ_command }} config:app:set core backgroundjobs_mode {{ nextcloud_background_job_mode }}"
user: "{{ nextcloud_user_info.uid }}"
tty: yes
when: nextcloud_current_backgroundjob_mode.stdout != nextcloud_background_job_mode

View File

@ -1,14 +1,14 @@
opcache.enable=1
opcache.interned_strings_buffer=32
opcache.enable={{ nextcloud_opcache_enable }}
opcache.interned_strings_buffer={{ nextcloud_opcache_interned_strings_buffer_mb }}
; next prime in the set which is suitable for large installations
; default for this setting is 10000 which picks the prime 7963,
; but default installation of nextcloud has already ~9k php files
; see https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.max-accelerated-files
opcache.max_accelerated_files=32531
opcache.memory_consumption=256
opcache.max_accelerated_files={{ nextcloud_opcache_max_accelerated_files }}
opcache.memory_consumption={{ nextcloud_opcache_memory_consumption_mb }}
; deconstructor optimizations
opcache.fast_shutdown=1
;opcache.save_comments=1
opcache.fast_shutdown={{ nextcloud_opcache_fast_shutdown }}
opcache.save_comments={{ nextcloud_opcache_save_comments }}
; not used if validate_timestamps=0
;opcache.revalidate_freq=1
opcache.validate_timestamps=0
opcache.revalidate_freq={{ nextcloud_opcache_revalidate_freq }}
opcache.validate_timestamps={{ nextcloud_opcache_validate_timestamps }}

View File

@ -6,9 +6,9 @@ group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 64
pm.start_servers = 32
pm.min_spare_servers = 24
pm.max_spare_servers = 48
pm.max_children = {{ nextcloud_fpm_max_children }}
pm.start_servers = {{ nextcloud_fpm_start_servers }}
pm.min_spare_servers = {{ nextcloud_fpm_min_spare_servers }}
pm.max_spare_servers = {{ nextcloud_fpm_max_spare_servers }}
;pm.max_requests=500

View File

@ -22,3 +22,7 @@ nextcloud_container_base_environment_yaml: |+2
{% elif nextcloud_database_type == 'sqlite' %}
SQLITE_DATABASE: "{{ nextcloud_database_name }}"
{% endif %}
PHP_MEMORY_LIMIT: "{{ nextcloud_php_memory_limit }}"
PHP_UPLOAD_LIMIT: "{{ nextcloud_php_upload_limit }}"
nextcloud_occ_command: "php occ"