Ladíme OPcache PHP7 a PHP8 pro Wordpress hosting

Cache (keš), v případě PHP opcache (OPC) je místo na disku hostingu pro uložení statických dat integrovaný přímo s jazykem PHP. Pokud je povolen, výrazně zvyšuje výkon webových stránek využívajících PHP. OPC zvyšuje výkon PHP tím, že ukládá předkompilovaný bajtový kód skriptů do sdílené paměti.

Tím eliminuje nutnost načítání a analyzování skriptů při každém požadavku na server. Funkčnost ověříme třeba pomocí jednoduchého pluginu, viz stránka k tomu určeného pluginu v adresáři WordPressu.

WordPress OPcache plugin

Po aktivaci pluginu v menu WP OPC pluginu najdeme tři informační karty. Globální nastavení, Statistiku a Seznam souborů v zásobníku. Pokud je funkční PHP OPC druhá a třetí karta obsahuje informace o použité pamětí, statistiku provozu a základní informace o běhu aplikace.

Opcache WordPress plugin
Opcache WordPress plugin

OPC ladíme pomocí konfiguračního souboru php.in, obvykle v cestě

 nano /etc/php/7.3/fpm/php.ini

Konfigurovatelné direktivy jsou vypsané přímo v rozhraní pluginu hned pod statistikou s uvedenou konfigurací

opc.blacklist_filename 	not defined
opc.consistency_checks 	0
opc.dups_fix 	false
opc.enable 	true
opc.enable_cli 	true
opc.enable_file_override 	false
opc.error_log 	not defined
opc.file_cache 	not defined
opc.file_cache_consistency_checks 	true
opc.file_cache_only 	false
opc.file_update_protection 	2
opc.force_restart_timeout 	180
opc.huge_code_pages 	false
opc.interned_strings_buffer 	8
opc.lockfile_path 	/tmp
opc.log_verbosity_level 	1
opc.max_accelerated_files 	10000
opc.max_file_size 	0
opc.max_wasted_percentage 	0.05
opc.memory_consumption 	256 MB (268435456)
opc.opt_debug_level 	0
opc.optimization_level 	

    CSE, STRING construction
    Constant conversion and jumps
    ++, +=, series of jumps
    INIT_FCALL_BY_NAME -> DO_FCALL
    CFG based optimization
    DFA based optimization
    CALL GRAPH optimization
    SCCP (constant propagation)
    TMP VAR usage
    NOP removal
    Merge equal constants
    Adjust used stack
    Remove unused variables
    DCE (dead code elimination)
    Inline functions

opc.preferred_memory_model 	not defined
opc.protect_memory 	false
opc.restrict_api 	not defined
opc.revalidate_freq 	2
opc.revalidate_path 	false
opc.save_comments 	true
opc.use_cwd 	true
opc.validate_permission 	false
opc.validate_root 	true
opc.validate_timestamps 	true

Pro kupříkladu změnu stavu přidělené paměti v konfiguračním souboru vyhledáme pasáž konfigurace OPC shared memory kde provedeme úpravu hodnoty na požadovanou hodnotu

; The OPC shared memory storage size.
opcache.memory_consumption=512

Rovněž můžeme konfigurovat limit paměti

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 1024M

kupříkladu 512MB. Po každé rekonfiguraci provedeme restart www serveru i php-fpm služby

systemctl restart nginx
systemctl restart php7.3-fpm

Obvykle nejčastěji upravované hodnoty jsou

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=3000
opcache.revalidate_freq=200

Užitečné

WP pluginy s podporou PHP8.
Domovská stránka OPC (PHP).

ICTIS.CZ