PHP OPcache: الأداء وتحديث الشيفرة بأمان
· PoolByte Technology

يقلل PHP OPcache من إعادة ترجمة الشيفرة إلى تعليمات وسيطة عن طريق الاحتفاظ بالنسخة المجمعة من ملفات PHP في الذاكرة. لا يقدم HTML جاهزًا للزائر ولا يخزن نتائج قاعدة البيانات تلقائيًا. لذلك، فإن الخلط بينه وبين نفس إعداد ذاكرة التخزين المؤقت للصفحة أو Redis قد يؤدي إلى التدخل في الطبقة الخاطئة في حالة حدوث مشكلات في الأداء.
ما العمل الذي يقلله OPcache؟
أثناء تشغيل طلب PHP، يجب قراءة التعليمات البرمجية وإعدادها في شكل قابل للتنفيذ. يمكن لـ OPcache إعادة استخدام نتيجة هذا الإعداد. مستند تكوين PHP يعرض تفاصيل خيارات التحكم في الذاكرة والملفات. التكلفة الأخرى هي أن التطبيق يجب أن ينتظر خدمة خارجية أو يقوم بتشغيل استعلامات SQL ثقيلة.
على سبيل المثال، فكر في تطبيق يقوم بتحميل مئات ملفات PHP على نفس الصفحة. قد يتم تقليل الحمل التجميعي؛ لكن الاتصال البطيء بمزود خدمة الدفع سيستمر في استغراق نفس القدر من الوقت. لذا، بمجرد تمكين الإعداد، لا تفحص الوقت الإجمالي فحسب، بل تفحص أيضًا المكان الذي يقضي فيه الطلب وقته. لا تشرع في جولة ثانية من التعديل دون معرفة مصدر التحسن.
اقرأ الذاكرة وميزانية الملف معًا
وجود ذاكرة كافية وحده لا يعني أنه سيتم الاحتفاظ بجميع الملفات في ذاكرة التخزين المؤقت. من المهم أيضًا تحديد عدد الملفات في التكوين وتنوع ملفات التطبيق. إذا كانت مواقع متعددة تستخدم نفس مجمع عمليات PHP، فتحقق مع موفر الاستضافة من النطاق الذي يمثله المقياس.
إذا كانت شاشة الحالة مطلوبة، فاجعلها متاحة للوصول المصرح به فقط. ترك مخرجات معلومات PHP الكاملة في عنوان عام؛ قد يؤدي ذلك إلى كشف مسارات الملفات والوحدات وبيئة التشغيل دون داعٍ. مستند opcache_get_status يعرض بيانات الحالة التي يمكن استرجاعها؛ هذه البيانات ليست صفحة تجريبية عامة.
كيفية جعل الكود الجديد يظهر؟
يعد سلوك التحقق من تغييرات الملف جزءًا من عملية النشر. إذا تم تعطيل التحقق من الطابع الزمني، فعند تحميل ملفات جديدة، قد يلزم إبطال ذاكرة التخزين المؤقت في بيئة الويب ذات الصلة أو قد يلزم تحديث العملية وفقًا لذلك. لا تفترض أن الإجراء الذي يتم تنفيذه من سطر الأوامر يؤثر على نفس المجموعة مثل طلبات الويب.
كما يمنع أيضًا خلط الملفات القديمة والجديدة أثناء نشر الإصدار. يجب أن يكون تبديل الإصدارات بطريقة ذرية وترتيب تحميل التعليمات البرمجية والتحقق من الصحة متوافقين مع بعضهم البعض. إذا احتفظ جزء من الصفحة بالسلوك القديم بعد الإصدار الجديد، فقم بتقييم ذاكرة التخزين المؤقت للمتصفح بالإضافة إلى OPcache والعمليات قيد التشغيل. يؤدي مسح جميع ذاكرات التخزين المؤقت بشكل عشوائي إلى صعوبة التشخيص.
خطة تحكم قوية
- حدد إصدار PHP والمجمع الذي يستخدمه طلب الويب.
- لاحظ أسباب استهلاك الذاكرة وإعادة التشغيل تحت الحمل.
- تحقق من علامة الإصدار في كل من الطلب الأول والطلبات اللاحقة.
- عند التراجع، تأكد من أن الإصدار السابق يعمل بالفعل.
- أغلق الوصول إلى ملفات التشخيص أو شاشاته التي فُتحت للفحص فقط.
يؤدي أخذ إعدادات OPcache بالتزامن مع طريقة إصدار التطبيق إلى تقليل مخاطر تشغيل التعليمات البرمجية القديمة مع زيادة السرعة. يمكنك العثور على عمليات فحص منفصلة لتغييرات إصدار PHP في دليل الترقية؛ يتطلب توافق الإصدار والتخزين المؤقت في وقت التشغيل اختبارات مختلفة.