Page 1 of 3

OPCache + JIT

Posted: Sun 28. May 2023, 12:27
by goldene-zeiten
Liebe KeyHelp-Freunde,

ich habe für eine Webpräsenz über die php.ini (sozusagen für diese eine Webpräsenz) OPCache aktiviert:

--
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=15000
opcache.max_wasted_percentage=15
opcache.fast_shutdown=0
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.revalidate_path=0
opcache.max_file_size=0
;opcache.file_cache=/kunden/homepages/22/d847499369/htdocs/.opcache
opcache.file_cache_only=1
opcache.save_comments=1
opcache.jit_buffer_size=256M
opcache.jit=1255
--

Wie man sieht, ist der Cache-Pfad deaktiviert. Ich war mir nicht sicher, welchen Pfad ich angeben soll. Aber es scheint mir, als ob das Caching trotzdem funktioniert. Nur wo werden bei einem fehlenden Parameter dann die Daten abgelegt?

Darüber hinaus habe ich ja versucht, auch den JIT zu aktivieren, da ich bereits PHP 8.2 auf dem Ubuntu 22.04 einsetze. Aber wenn ich in TYPO3 mir die php_Info-Einstellungen ansehe, steht bei JIT = deaktiviert. Demnach scheint der JIT nicht aktiv zu sein?

Viele Grüße von

Hahni

Re: OPCache + JIT

Posted: Sun 28. May 2023, 12:54
by Tobi

Re: OPCache + JIT

Posted: Sun 28. May 2023, 13:14
by goldene-zeiten
Den LInk auf den Thread verstehe ich leider nicht. Ich hatte hier nachgefragt und da hieß es ausdrücklich, dass die user.ini PHP-spezifische Einstellungen pro Webpräsenz enthalten kann. Der Thread aber zielt ja darauf ab, dass das nicht gut ist. Was ist denn nun richtig? Zudem fehlen mir ja auch die Infos zum JIT und dem Pfad für den Cache?

Re: OPCache + JIT

Posted: Sun 28. May 2023, 15:26
by Tobi
Sorry das hatte ich überlesen…

goldene-zeiten wrote: Sun 28. May 2023, 12:27
Darüber hinaus habe ich ja versucht, auch den JIT zu aktivieren, da ich bereits PHP 8.2 auf dem Ubuntu 22.04 einsetze.
Hast du tatsächlich die PHP Version von Ubuntu 22.04 LTS auf Version 8.2 abgeändert?

Re: OPCache + JIT

Posted: Sun 28. May 2023, 15:40
by goldene-zeiten
Nein, ich habe die Version genommen, die man nachträglich über KeyHelp installieren kann.

Re: OPCache + JIT

Posted: Sun 28. May 2023, 19:10
by goldene-zeiten
Außerdem hatte ich die Anleitung so verstanden, dass grundsätzlich alle Module der jeweiligen PHP Version automatisch mit installiert sind, wenn man über das KeyHellp Panel eine neue Version nach installiert. Die Konfigurationsparameter habe ich letztendlich so gesetzt wie das in der Anleitung für PHP steht. Nun bin ich ein bisschen ratlos, wo ich noch suchen könnte.

Re: OPCache + JIT

Posted: Sun 28. May 2023, 19:58
by Tobi
Was zeigt denn phpinfo() an?

Re: OPCache + JIT

Posted: Sun 28. May 2023, 22:53
by goldene-zeiten
Mein PHP-Skript zeigt folgendes an:

Code: Select all

<?php

	var_dump(opcache_get_status()['jit']);

?>
Ergebnis:

Code: Select all

array(7) {
  ["enabled"]=>
  bool(false)
  ["on"]=>
  bool(false)
  ["kind"]=>
  int(5)
  ["opt_level"]=>
  int(4)
  ["opt_flags"]=>
  int(6)
  ["buffer_size"]=>
  int(0)
  ["buffer_free"]=>
  int(0)
}

Re: OPCache + JIT

Posted: Mon 29. May 2023, 12:39
by goldene-zeiten
Im Grunde genommen liegen im FTP-Bereich des Benutzers die folgenden beiden Dateien mit folgendem Inhalt:

php.ini

Code: Select all

[general]
date.timezone=Europe/Berlin
max_execution_time=60
memory_limit=512M
expose_php=off

[memcache]
memcache.dbpath=/var/lib/memcache
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0
memcache.protocol=ascii
memcache.allow_failover=1
memcache.chunk_size=32768
memcache.default_port=11211
memcache.hash_function=fnv
memcache.hash_strategy=consistent
memcache.max_failover_attempts=20

[logging]
log_errors=on
error_reporting=32767
;error_log=/kunden/homepages/22/d847499369/htdocs/goldene-zeiten.info/typo3temp/var/log/php_error.log
Und eine .user.ini

Code: Select all

expose_php = Off
max_input_vars = 8192
short_open_tag = On
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

zlib.output_compression = 1
zlib.output_compression_level = 9

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=15000
opcache.max_wasted_percentage=15
opcache.fast_shutdown=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.revalidate_path=0
opcache.max_file_size=0
;opcache.file_cache=/kunden/homepages/22/d847499369/htdocs/.opcache
opcache.file_cache_only=1
opcache.jit=1255
opcache.jit_buffer_size=100M

Re: OPCache + JIT

Posted: Mon 29. May 2023, 14:22
by Tobi
Was ist in den PHP Einstellungen des Users hinterlegt?
Und (ich wiederhole mich), was sagt phpinfo()?

Re: OPCache + JIT

Posted: Mon 29. May 2023, 19:15
by goldene-zeiten
Wenn du die "Zusätzliche PHP-Einstellungen" im Kundenbereich meinst, dann steht da schlichtweg nichts in der TEXTAREA.

Und bezüglich phpinfo():

Code: Select all

Zend OPcache
Opcode Caching	Up and Running
Optimization	Enabled
SHM Cache	Enabled
File Cache	Disabled
JIT	Disabled
Startup	OK
Shared memory model	mmap
Cache hits	6587528
Cache misses	167359
Used memory	128509960
Free memory	17208
Wasted memory	5690560
Interned Strings Used memory	6290992
Interned Strings Free memory	0
Cached scripts	4847
Cached keys	8569
Max keys	16229
OOM restarts	1
Hash keys restarts	0
Manual restarts	0
Directive	Local Value	Master Value
opcache.blacklist_filename	no value	no value
opcache.consistency_checks	0	0
opcache.dups_fix	Off	Off
opcache.enable	On	On
opcache.enable_cli	Off	Off
opcache.enable_file_override	Off	Off
opcache.error_log	no value	no value
opcache.file_cache	no value	no value
opcache.file_cache_consistency_checks	On	On
opcache.file_cache_only	Off	Off
opcache.file_update_protection	2	2
opcache.force_restart_timeout	180	180
opcache.huge_code_pages	Off	Off
opcache.interned_strings_buffer	8	8
opcache.jit	tracing	tracing
opcache.jit_bisect_limit	0	0
opcache.jit_blacklist_root_trace	16	16
opcache.jit_blacklist_side_trace	8	8
opcache.jit_buffer_size	0	0
opcache.jit_debug	0	0
opcache.jit_hot_func	127	127
opcache.jit_hot_loop	64	64
opcache.jit_hot_return	8	8
opcache.jit_hot_side_exit	8	8
opcache.jit_max_exit_counters	8192	8192
opcache.jit_max_loop_unrolls	8	8
opcache.jit_max_polymorphic_calls	2	2
opcache.jit_max_recursive_calls	2	2
opcache.jit_max_recursive_returns	2	2
opcache.jit_max_root_traces	1024	1024
opcache.jit_max_side_traces	128	128
opcache.jit_prof_threshold	0.005	0.005
opcache.lockfile_path	/tmp	/tmp
opcache.log_verbosity_level	1	1
opcache.max_accelerated_files	10000	10000
opcache.max_file_size	0	0
opcache.max_wasted_percentage	5	5
opcache.memory_consumption	128	128
opcache.opt_debug_level	0	0
opcache.optimization_level	0x7FFEBFFF	0x7FFEBFFF
opcache.preferred_memory_model	no value	no value
opcache.preload	no value	no value
opcache.preload_user	no value	no value
opcache.protect_memory	Off	Off
opcache.record_warnings	Off	Off
opcache.restrict_api	no value	no value
opcache.revalidate_freq	0	2
opcache.revalidate_path	Off	Off
opcache.save_comments	On	On
opcache.use_cwd	On	On
opcache.validate_permission	Off	Off
opcache.validate_root	Off	Off
opcache.validate_timestamps	On	On

Re: OPCache + JIT

Posted: Mon 29. May 2023, 20:13
by goldene-zeiten
Selbst wenn ich die Einstellungen direkt im KeyHelp-Panel hinterlege - insbesondere OPCache aktiviere als auch natürlich JIT, ändert sich nichts und JIT bleibt deaktivert.

Re: OPCache + JIT

Posted: Mon 29. May 2023, 21:44
by OlliTheDarkness
goldene-zeiten wrote: Mon 29. May 2023, 12:39 Im Grunde genommen liegen im FTP-Bereich des Benutzers die folgenden beiden Dateien mit folgendem Inhalt:

php.ini

Code: Select all

[general]
date.timezone=Europe/Berlin
max_execution_time=60
memory_limit=512M
expose_php=off

[memcache]
memcache.dbpath=/var/lib/memcache
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0
memcache.protocol=ascii
memcache.allow_failover=1
memcache.chunk_size=32768
memcache.default_port=11211
memcache.hash_function=fnv
memcache.hash_strategy=consistent
memcache.max_failover_attempts=20

[logging]
log_errors=on
error_reporting=32767
;error_log=/kunden/homepages/22/d847499369/htdocs/goldene-zeiten.info/typo3temp/var/log/php_error.log
Und eine .user.ini

Code: Select all

expose_php = Off
max_input_vars = 8192
short_open_tag = On
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

zlib.output_compression = 1
zlib.output_compression_level = 9

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=15000
opcache.max_wasted_percentage=15
opcache.fast_shutdown=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.revalidate_path=0
opcache.max_file_size=0
;opcache.file_cache=/kunden/homepages/22/d847499369/htdocs/.opcache
opcache.file_cache_only=1
opcache.jit=1255
opcache.jit_buffer_size=100M
Hier

Code: Select all

...
[memcache]
memcache.dbpath=/var/lib/memcache
...
sei angemerkt, dass (wenn unverändert) die OBD greift und man entweder den Pfad in die Ausnahme nimmt oder besser einen Pfad nutzt auf welchen der User berechtigt ist zuzugreifen.

Ist ungetestet und eine reine Vermutung.

Des weiteren,

Code: Select all

opcache.jit=1255
bist du sicher das deine CPU die Unterstützung hat?

Weil wenn nicht, führt das zum "disable" und nicht wie man es vieleicht erwarten würde zu nem FallBack auf 0.

Re: OPCache + JIT

Posted: Mon 29. May 2023, 21:46
by Tobi
Bitte füge ans Ende der Datei "/opt/keyhelp/php/8.2/etc/conf.d/01-opcache.ini" folgende zwei Zeilen ein.

Code: Select all


opcache.jit=1255
opcache.jit_buffer_size=100M

Anschließend PHP8.2 neu starten.

et voilà!
JIT.png
JIT.png (8.55 KiB) Viewed 2230 times

Re: OPCache + JIT  [GELÖST]

Posted: Mon 29. May 2023, 23:17
by goldene-zeiten
Tobi wrote: Mon 29. May 2023, 21:46 Bitte füge ans Ende der Datei "/opt/keyhelp/php/8.2/etc/conf.d/01-opcache.ini" folgende zwei Zeilen ein.

Code: Select all


opcache.jit=1255
opcache.jit_buffer_size=100M

Anschließend PHP8.2 neu starten.

et voilà!

JIT.png
Vielen lieben Dank, Tobi! Das hat mir weiter geholfen! Eigentlich hatte ich mir den Weg schon gedacht - war aber zu ehrfürchtig, etwas in den Konfigurationsdateien von KeyHelp zu ändern - vor allem auch, damit die Einstellungen nicht überschrieben werden...