OPcache (oldin "Zend Optimizer+") โ bu PHP'ning rasmiy bytecode kesh tizimi. PHP har skript chaqirilishida uni parser orqali bytecode'ga (mashina kodiga yaqin format) o'tkazadi va keyin ishga tushiradi. Bu kompilyatsiya jarayoni har so'rovda takrorlanadi va katta vaqt sarflaydi. OPcache esa kompilyatsiya natijasini RAM'da saqlaydi va keyingi so'rovlarda darhol ishga tushiradi โ bu sayt tezligini sezilarli oshiradi.
OPcache nima beradi?
Standart PHP saytda (OPcache'siz): har so'rov uchun fayllarni o'qish, parser, sintaksis tekshirish, bytecode generatsiya, executor โ bularning hammasi ~50-200 ms vaqt. OPcache bilan bu 5-20 ms ga tushadi (10 marta tezroq). WordPress oddiy saytida sahifa yuklash 800 ms dan 200 ms ga tushishi mumkin. Yirik saytda effekt yanada katta.
OPcache sozlash
OPcache PHP 5.5+ versiyalarida o'rnatilgan, lekin default sozlamalar konservativ โ siz ularni optimallashtirib chiqishingiz kerak. Quyidagi parametrlarni .user.ini yoki php.ini'da o'rnating:
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
memory_consumption โ qancha RAM OPcache uchun ajratiladi (MB'da). Tavsiya: WordPress uchun 128-256, yirik e-commerce 256-512. max_accelerated_files โ eng ko'p qachalik fayllar kesh'ga sig'adi. Composer asosida loyihalar uchun 20000-30000.
validate_timestamps va revalidate_freq โ fayl o'zgartirilganligini qachon tekshirish. Production'da revalidate_freq = 60 (har minutda tekshirish), development'da validate_timestamps = 0 (umuman tekshirmaslik) yoki revalidate_freq = 0 (har so'rovda tekshirish).
OPcache holatini tekshirish
opcache_get_status() PHP funksiyasi orqali kesh holatini ko'rish mumkin. Lekin amaliyatda OPcache GUI vositalardan foydalanish qulayroq โ eng mashhuri OPcache GUI (rlerdorf/opcache-status โ Rasmus Lerdorf, PHP yaratuvchisi tomonidan).
Cache busting muammosi
Agar siz kod o'zgartirsangiz va sayt eski versiyani ko'rsatsa, OPcache'ni tozalash kerak: opcache_reset() PHP funksiyasi yoki PHP-FPM xizmatini qayta yuklash. cPanel'da odatda "Reset OPcache" tugmasi mavjud.
Sayt.uz amaliyot
Sayt.uz default tariflarda OPcache yoqilgan va optimallashtirilgan: 256M RAM, 30000 max files. Mijozlar bu sozlamalarni .user.ini orqali boshqarishi mumkin. WordPress saytlar OPcache bilan 3-5 marta tez ishlaydi โ Largest Contentful Paint (LCP) 800ms dan 200ms ga tushadi. Maslahat: OPcache yoqing va kuzating โ bu hech qanday narsa sotmaydi, lekin foydalanuvchi tajribangizni keskin yaxshilaydi.