OPcache PHP-startiga optimumigo

Por retejoj bazitaj sur WordPress , JoomlaLaravel kaj ne havas specifan enhavon por uzanto, estas konsilinde konservi ĉiujn paĝojn en statika HTML-kaŝmemoro kaj regeneri la kaŝmemoron mane (aŭ aŭtomate) nur kiam ŝanĝoj estas faritaj en la backend. Tamen, se la paĝo enhavas dinamikan enhavon, kiu dependas de kunsidoj kaj kuketoj aŭ ankaŭ de lingvo kaj loko, OPcache taŭgas .


La tiel nomata starttempo por ĉiuj menciitaj tri sistemoj superas 100 ms kun freŝe instalita servilo CentOS7 (kun SSD kaj PHP 7.1). Ĉiufoje kiam PHP-skripto estas ekzekutita, ĝi devas esti kompilita en bajtokodon dum rultempo. OPcache nun efektivigas kaŝmemoron por ĉi tiu bajtokodo - se la sama PHP-skripto estas plenumita kun la sekva peto, ĝi ne devas esti rekompilita. Post aktivigo de OPcache ni starigas la jenajn agordojn:

9006cec6c5d3d2498ee26c5bfd91590a

La ekzekuta tempo (averaĝe pli ol 10 ekzekutoj) nun signife reduktiĝis:

WordPress 4.7.4 Joomla 3.7 Laravel 5.4
sen OPcache 295 ms 201 ms 110 ms
kun OPcache 54 ms 59 ms 13 ms
Faktoro 5,5 3,5 8,5

Ĉar ni starigis validate_timestamps al 0 kaj samtempe revalidate_freq al daŭro de unu tago, la kaŝmemoro preskaŭ neniam aŭtomate rekonstruiĝas (ni konscie faras tion permane). Kun malgranda git-hoko , PHP-skripto plenumiĝas kun ĉiu "tiro". Kiel aktivigi la hokon:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

La sekva helpa funkcio ankaŭ helpas mezuri unuopajn kodopartojn (aŭ la tutan ekzekutotempon):

085f4291bbcc4e8a64bbea951ff49ab9

Se vi volas akiri helpemajn informojn kiel statuso, uzata memoro aŭ kaŝmemora nombro da dosieroj, vi uzas ĉi tiun PHP-funkcion:

3f6309d04bc7e48dd909859321b96209

Por profiti de OPcache en loka disvolva medio (kio ĝenerale ne rekomendas), ni uzas lertaĵon.

OPcache estas aktiva en ĉiuj serviloj, kiuj havas la OPcache-modulon instalita kaj sur kiuj la opcache.enable-agordo ne estas eksplicite fiksita. Ni lasas ĝin tiel. Ni nur agordas opcache.validate_timestamps = 1 en php.ini. Ĉi tio signifas, ke opcache.revalidate_freq = 2. Ĉi tio signifas, ke OPcache estas revalidigita preskaŭ kontinue por ĉiu projekto. Por tiuj projektoj, en kiuj ni volas konstante aktivigi OPcache, ni starigas projekt-rilatajn en la .htaccess la sekva agordo:

1dd64a3f2fe4425b29b1409410fe3fc0

Poste ni rekomencas la retservilon kaj kreas la sekvan skripton:

91fb5289160e410607c9ea89112a575b

Ĉi tiu skripto malplenigas la kaŝmemoron kaj samtempe rekonstruas ĝin. Nun ni starigas komandon RunOnSave pri laborspaco en nia plej ŝatata redaktilo VSCode:

91fb5289160e410607c9ea89112a575b

Reen