OPcache PHP- ի գործարկման օպտիմիզացում

WordPress- ի , Joomla- ի կամ Laravel- ի վրա հիմնված կայքերի համար, որոնք չունեն օգտագործողի համար հատուկ բովանդակություն, ցանկալի է բոլոր էջերը պահել ստատիկ HTML հիշապահեստում և միայն վերականգնել հիշապահեստը ձեռքով (կամ ավտոմատ կերպով), երբ հետին պլանում փոփոխություններ են կատարվում: Այնուամենայնիվ, եթե էջը պարունակում է դինամիկ բովանդակություն, որը կախված է նստաշրջաններից և թխուկներից կամ լեզվից և գտնվելու վայրից, OPcache- ը հարմար է :


Նշված երեք համակարգերի համար, այսպես կոչված, գործարկման ժամանակը ավելի քան 100 ms է `նոր տեղադրված CentOS7 սերվերով (SSD- ով և PHP 7.1-ով): Ամեն անգամ, երբ գործարկվում է PHP սկրիպտ, այն պետք է կազմվի գործարկման ժամանակ բայթոդի մեջ: OPcache- ն այժմ իրականացնում է այս bytecode- ի քեշը. Եթե միևնույն PHP գրությունը կատարվի հաջորդ հարցման հետ, ապա այն այլևս հարկավոր չէ վերամշակել: OPcache- ն ակտիվացնելուց հետո մենք սահմանում ենք հետևյալ պարամետրերը:

9006cec6c5d3d2498ee26c5bfd91590a

Կատարման ժամանակը (միջինը `ավելի քան 10 մահապատիժ) այժմ զգալիորեն կրճատվել է:

WordPress 4.7.4 Joomla 3.7 Լարավել 5.4
առանց OPcache- ի 295 ms 201 ms 110 մվ
OPcache- ի հետ 54 մվ 59 մվ 13 մվ
Գործոն 5,5 3,5 8,5

Քանի որ մենք validate_timestamps- ը դնում ենք 0 և միևնույն ժամանակ վերափոխում_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

Վերադառնալ