OPcache PHP жүктөө оптимизациясы

WordPress , Joomla же Laravel негизделген жана колдонуучуга мүнөздүү эч кандай мазмуну жок веб-сайттар үчүн, бардык барактарды статикалык HTML кэшинде сактап, арткы бетине өзгөртүүлөр киргизилгенде гана, кэшти кол менен (же автоматтык түрдө) калыбына келтирүү сунушталат. Бирок, эгерде баракта сеанстарга жана кукилерге, ошондой эле тилге жана жайгашкан жерине байланыштуу динамикалык мазмун болсо, OPcache ылайыктуу .


Жогоруда айтылган үч тутумдун жүктөө убакыты деп аталган CentOS7 сервери менен 100 мс ашык (SSD жана PHP 7.1 менен). PHP сценарийи аткарылган сайын, аны иштеп жатканда байт-кодго топтош керек. OPcache эми ушул байт-код үчүн кэшти ишке ашырат - эгерде ошол эле PHP скрипти кийинки өтүнүч менен аткарылса, аны кайра компиляциялоонун кажети жок. OPcache жандандыруу кийин биз төмөнкү орнотууларды койду:

9006cec6c5d3d2498ee26c5bfd91590a

Аткаруу убактысы (орто эсеп менен 10дон ашуун өлүм жазасы) азыр кыскарды:

WordPress 4.7.4 Joomla 3.7 Laravel 5.4
OPcache жок 295 мс 201 мс 110 мс
OPcache менен 54 мс 59 мс 13 мс
Фактор 5,5 3,5 8,5

Биз validate_timestampsди 0 деп, ошол эле учурда revalidate_freq деп бир күндүн узактыгын койгондуктан, кэш дээрлик эч качан автоматтык түрдө калыбына келтирилбейт (биз муну кол менен жасайбыз). Чакан git илгичи менен PHP сценарийи ар бир "тартылган сайын" аткарылат. Илмекти кантип жандырууга болот:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

Төмөнкү жардамчы функциясы айрым код бөлүктөрүн (же аткаруунун бүткүл убакытын) өлчөө үчүн пайдалуу:

085f4291bbcc4e8a64bbea951ff49ab9

Эгерде сиз статус, колдонулган эс тутум же файлдардын кэштелген саны сыяктуу пайдалуу маалымат алгыңыз келсе, анда бул PHP функциясын колдоносуз:

3f6309d04bc7e48dd909859321b96209

Жергиликтүү өнүгүү чөйрөсүндө OPcache пайда алуу үчүн (адатта, сунушталбайт), биз куулук колдонобуз.

OPcache OPcache модулу орнотулган жана opcache.enable орнотуусу так орнотулбаган бардык серверлерде активдүү. Биз аны ошол бойдон калтырабыз. Php.ini тилине opcache.validate_timestamps = 1ди гана орноттук, демек, opcache.revalidate_freq = 2. Демек, OPcache ар бир долбоор үчүн дээрлик тынымсыз текшерилип турат. OPcache программасын биротоло активдештирүүнү каалаган долбоорлор үчүн биз долбоорго байланыштуу колдонобуз .htaccessте төмөнкү жөндөө:

1dd64a3f2fe4425b29b1409410fe3fc0

Андан кийин веб-серверди өчүрүп-күйгүзүп, төмөнкү скриптти түзөбүз:

91fb5289160e410607c9ea89112a575b

Бул скрипт кэшти тазалап, ошол эле учурда аны калыбына келтирет. Эми жумуш мейкиндигине байланыштуу RunOnSave командасын сүйүктүү VSCode редакторубузга орноттук:

91fb5289160e410607c9ea89112a575b

Артка