OPcache PHP बूटअप ऑप्टिमाइज़ेशन

उदाहरण के लिए, WordPress , Joomla या Laravel पर आधारित वेबसाइटों के लिए, और कोई उपयोगकर्ता-विशिष्ट सामग्री नहीं है, सभी पृष्ठों को एक स्थिर HTML कैश में रखने की सलाह दी जाती है और बैकएंड में परिवर्तन किए जाने पर केवल कैश को मैन्युअल रूप से (या स्वचालित रूप से) पुन: उत्पन्न करते हैं। हालाँकि, यदि पृष्ठ में डायनेमिक सामग्री है जो सत्रों और कुकीज़ पर या भाषा और स्थान पर भी निर्भर करती है, तो OPcache उपयुक्त है


उल्लिखित सभी तीन प्रणालियों के लिए तथाकथित बूट समय एक ताज़ा स्थापित CentOS7 सर्वर (SSD और PHP 7.1 के साथ) के साथ 100 एमएस से अधिक है। हर बार जब PHP स्क्रिप्ट निष्पादित की जाती है, तो उसे रनटाइम में बायटेकोड में संकलित करना होता है। OPcache अब इस बाइटकोड के लिए एक कैश लागू करता है - यदि उसी PHP स्क्रिप्ट को अगले अनुरोध के साथ निष्पादित किया जाता है, तो इसे पुन: कनेक्ट करने की आवश्यकता नहीं है। OPcache को सक्रिय करने के बाद, हम निम्नलिखित सेटिंग्स सेट करते हैं:

9006cec6c5d3d2498ee26c5bfd91590a

निष्पादन समय (10 निष्पादन से अधिक औसत) अब काफी कम हो गया है:

वर्डप्रेस 4.7.4 जूमला 3.7 लारवेल 5.4
बिना ओपेक के 295 मि 201 एमएस 110 मि
ओपचे के साथ ५४ मि 59 मि 13 एमएस
फ़ैक्टर 5,5 3,5 8,5

चूँकि हम validate_timestamps को 0 पर सेट करते हैं और एक ही समय में एक दिन की अवधि में revalidate_freq करते हैं, कैश लगभग कभी भी स्वचालित रूप से पुनर्निर्माण नहीं किया जाता है (हम जानबूझकर इसे मैन्युअल रूप से करते हैं)। एक छोटे गिट हुक के साथ, हर "पुल" के साथ एक PHP स्क्रिप्ट निष्पादित होती है। हुक को कैसे सक्रिय करें:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

निम्नलिखित हेल्पर फ़ंक्शन व्यक्तिगत कोड भागों (या संपूर्ण निष्पादन समय) को मापने के लिए भी सहायक है:

085f4291bbcc4e8a64bbea951ff49ab9

यदि आप स्टेटस, यूज्ड मेमोरी या कैश्ड संख्या की फाइलों जैसी उपयोगी जानकारी प्राप्त करना चाहते हैं, तो आप इस PHP फंक्शन का उपयोग कर सकते हैं:

3f6309d04bc7e48dd909859321b96209

स्थानीय विकास वातावरण में ओपचे से लाभान्वित होने के लिए (जो आमतौर पर अनुशंसित नहीं है), हम एक चाल का उपयोग करते हैं।

OPcache उन सभी सर्वरों पर सक्रिय है जिनके पास OPcache मॉड्यूल स्थापित है और जिस पर opcache.enable सेटिंग स्पष्ट रूप से सेट नहीं है। हम इसे वैसे ही छोड़ देते हैं। हम केवल opcache.validate_timestamps = 1 को php.ini में सेट करते हैं। इसका मतलब है कि opcache.revalidate_freq = 2. इसका मतलब है कि OPcache हर परियोजना के लिए लगभग लगातार अमान्य है। उन परियोजनाओं के लिए जिनमें हम स्थायी रूप से OPcache को सक्रिय करना चाहते हैं, हम प्रोजेक्ट-संबंधित का उपयोग करते हैं में .htaccess निम्न सेटिंग:

1dd64a3f2fe4425b29b1409410fe3fc0

फिर हम वेब सर्वर को पुनरारंभ करते हैं और निम्न स्क्रिप्ट बनाते हैं:

91fb5289160e410607c9ea89112a575b

यह स्क्रिप्ट कैश को साफ़ करती है और उसी समय उसका पुनर्निर्माण करती है। अब हम अपने पसंदीदा संपादक VSCode में एक कार्यक्षेत्र-संबंधित RunOnSave कमांड सेट करते हैं:

91fb5289160e410607c9ea89112a575b

वापस