diff --git a/roles/server/defaults/main.yml b/roles/server/defaults/main.yml index c6aa19a..92901a4 100644 --- a/roles/server/defaults/main.yml +++ b/roles/server/defaults/main.yml @@ -58,3 +58,19 @@ 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 }}" diff --git a/roles/server/templates/nextcloud-fpm-opcache.ini.j2 b/roles/server/templates/nextcloud-fpm-opcache.ini.j2 index 7eea796..d65385a 100644 --- a/roles/server/templates/nextcloud-fpm-opcache.ini.j2 +++ b/roles/server/templates/nextcloud-fpm-opcache.ini.j2 @@ -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 }} diff --git a/roles/server/templates/nextcloud-fpm.ini.j2 b/roles/server/templates/nextcloud-fpm.ini.j2 index 7318c4b..f66b41b 100644 --- a/roles/server/templates/nextcloud-fpm.ini.j2 +++ b/roles/server/templates/nextcloud-fpm.ini.j2 @@ -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