From 8e588c62644675faa8170fca1012600a915a02be Mon Sep 17 00:00:00 2001 From: strarsis Date: Sun, 1 Oct 2023 23:22:22 +0200 Subject: [PATCH 1/5] Add PHP OPcache `jit_buffer_size` setting. --- roles/php/defaults/main.yml | 1 + roles/php/templates/php-fpm.ini.j2 | 1 + 2 files changed, 2 insertions(+) diff --git a/roles/php/defaults/main.yml b/roles/php/defaults/main.yml index bde3e6b71b..7f11b50972 100644 --- a/roles/php/defaults/main.yml +++ b/roles/php/defaults/main.yml @@ -33,6 +33,7 @@ php_opcache_revalidate_freq: 60 php_opcache_validate_timestamps: 1 php_opcache_max_wasted_percentage: 5 php_opcache_huge_code_pages: 0 +php_opcache_jit_buffer_size: 256M php_fpm_set_emergency_restart_threshold: false php_fpm_emergency_restart_threshold: 0 diff --git a/roles/php/templates/php-fpm.ini.j2 b/roles/php/templates/php-fpm.ini.j2 index c3a6cc0dc6..d07cfc9b62 100644 --- a/roles/php/templates/php-fpm.ini.j2 +++ b/roles/php/templates/php-fpm.ini.j2 @@ -33,3 +33,4 @@ opcache.revalidate_freq = {{ php_opcache_revalidate_freq }} opcache.fast_shutdown = {{ php_opcache_fast_shutdown }} opcache.max_wasted_percentage = {{ php_opcache_max_wasted_percentage }} opcache.huge_code_pages = {{ php_opcache_huge_code_pages }} +opcache.jit_buffer_size = {{ php_opcache_jit_buffer_size }} From 4ad49bc7a70666461effd91ad91cc679b4fab542 Mon Sep 17 00:00:00 2001 From: strarsis Date: Sun, 1 Oct 2023 23:24:12 +0200 Subject: [PATCH 2/5] Add PHP OPcache `jit` setting (conf.d config). --- roles/php/defaults/main.yml | 1 + roles/php/tasks/main.yml | 7 +++++++ roles/php/templates/10-opcache.ini.j2 | 6 ++++++ 3 files changed, 14 insertions(+) create mode 100644 roles/php/templates/10-opcache.ini.j2 diff --git a/roles/php/defaults/main.yml b/roles/php/defaults/main.yml index 7f11b50972..a1b611a4a7 100644 --- a/roles/php/defaults/main.yml +++ b/roles/php/defaults/main.yml @@ -33,6 +33,7 @@ php_opcache_revalidate_freq: 60 php_opcache_validate_timestamps: 1 php_opcache_max_wasted_percentage: 5 php_opcache_huge_code_pages: 0 +php_opcache_jit: 'Off' php_opcache_jit_buffer_size: 256M php_fpm_set_emergency_restart_threshold: false diff --git a/roles/php/tasks/main.yml b/roles/php/tasks/main.yml index 9606170c88..107a102047 100644 --- a/roles/php/tasks/main.yml +++ b/roles/php/tasks/main.yml @@ -61,6 +61,13 @@ dest: /etc/php/{{ php_version }}/cli/php.ini mode: '0644' +- name: Copy 10-opcache.ini configuration file + template: + src: 10-opcache.ini.j2 + dest: /etc/php/{{ php_version }}/fpm/conf.d/10-opcache.ini + mode: '0644' + notify: reload php-fpm + - name: Change ImageMagick policy.xml to allow for PDFs replace: path: /etc/ImageMagick-6/policy.xml diff --git a/roles/php/templates/10-opcache.ini.j2 b/roles/php/templates/10-opcache.ini.j2 new file mode 100644 index 0000000000..5f5f74edb7 --- /dev/null +++ b/roles/php/templates/10-opcache.ini.j2 @@ -0,0 +1,6 @@ +; {{ ansible_managed }} + +; configuration for php opcache module +; priority=10 +zend_extension=opcache.so +opcache.jit={{ php_opcache_jit }} From fa857b96026c994f6aff2282a1964a8f0e45591e Mon Sep 17 00:00:00 2001 From: strarsis Date: Mon, 2 Oct 2023 01:04:25 +0200 Subject: [PATCH 3/5] Use the default `0` for `opcache.jit_buffer_size` option (JIT disabled by default). --- roles/php/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/php/defaults/main.yml b/roles/php/defaults/main.yml index a1b611a4a7..f77eeb5b42 100644 --- a/roles/php/defaults/main.yml +++ b/roles/php/defaults/main.yml @@ -34,7 +34,7 @@ php_opcache_validate_timestamps: 1 php_opcache_max_wasted_percentage: 5 php_opcache_huge_code_pages: 0 php_opcache_jit: 'Off' -php_opcache_jit_buffer_size: 256M +php_opcache_jit_buffer_size: 0 php_fpm_set_emergency_restart_threshold: false php_fpm_emergency_restart_threshold: 0 From 0a5aac78ca492b013c014dccfc700bb877168faa Mon Sep 17 00:00:00 2001 From: strarsis Date: Wed, 4 Oct 2023 07:29:19 +0200 Subject: [PATCH 4/5] Enable JIT by default (using default `tracing`). --- roles/php/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/php/defaults/main.yml b/roles/php/defaults/main.yml index f77eeb5b42..dce3c63075 100644 --- a/roles/php/defaults/main.yml +++ b/roles/php/defaults/main.yml @@ -33,7 +33,7 @@ php_opcache_revalidate_freq: 60 php_opcache_validate_timestamps: 1 php_opcache_max_wasted_percentage: 5 php_opcache_huge_code_pages: 0 -php_opcache_jit: 'Off' +php_opcache_jit: 'tracing' php_opcache_jit_buffer_size: 0 php_fpm_set_emergency_restart_threshold: false From 0eba0dc2b0bf95572f3660396a20d8f596795226 Mon Sep 17 00:00:00 2001 From: strarsis Date: Wed, 15 Nov 2023 02:34:16 +0100 Subject: [PATCH 5/5] Set `jit_buffer_size` to non-zero, sensible value for enabling JIT by default. --- roles/php/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/php/defaults/main.yml b/roles/php/defaults/main.yml index dce3c63075..2b150021ed 100644 --- a/roles/php/defaults/main.yml +++ b/roles/php/defaults/main.yml @@ -34,7 +34,7 @@ php_opcache_validate_timestamps: 1 php_opcache_max_wasted_percentage: 5 php_opcache_huge_code_pages: 0 php_opcache_jit: 'tracing' -php_opcache_jit_buffer_size: 0 +php_opcache_jit_buffer_size: 256M php_fpm_set_emergency_restart_threshold: false php_fpm_emergency_restart_threshold: 0