OPcache PHP bootup الأمثل

بالنسبة إلى مواقع الويب التي تعتمد على WordPress أو Joomla أو Laravel ، على سبيل المثال ، ولا تحتوي على محتوى خاص بالمستخدم ، يُنصح بالاحتفاظ بجميع الصفحات في ذاكرة تخزين مؤقت HTML ثابتة وإعادة إنشاء ذاكرة التخزين المؤقت يدويًا (أو تلقائيًا) فقط إذا كان هناك تغيير في الخلفية. ومع ذلك ، إذا كانت الصفحة تحتوي على محتوى ديناميكي يعتمد على الجلسات وملفات تعريف الارتباط أو أيضًا على اللغة والموقع ، فإن OPcache مناسبة .


وقت التمهيد المزعوم للأنظمة الثلاثة المذكورة يزيد عن 100 مللي ثانية مع خادم CentOS7 المثبت حديثًا (مع SSD و PHP 7.1). في كل مرة يتم فيها تنفيذ نص PHP ، يجب تجميعه في رمز بايت في وقت التشغيل. يقوم OPcache الآن بتنفيذ ذاكرة تخزين مؤقت لرمز بايت هذا - إذا تم تنفيذ نفس نص PHP مع الطلب التالي ، فلا يلزم إعادة ترجمته. بعد تنشيط OPcache ، قمنا بتعيين الإعدادات التالية:

9006cec6c5d3d2498ee26c5bfd91590a

تم الآن تقليل وقت التنفيذ (الذي بلغ متوسطه أكثر من 10 عمليات إعدام) بشكل كبير:

ووردبريس 4.7.4 جملة 3.7.1 Laravel 5.4.1
بدون OPcache 295 مللي ثانية 201 مللي ثانية 110 مللي ثانية
مع OPcache 54 مللي ثانية 59 مللي ثانية 13 مللي ثانية
عامل 5,5 3,5 8,5

نظرًا لأننا قمنا بتعيين validate_timestamps على 0 وفي نفس الوقت revalidate_freq لمدة يوم واحد ، لا يتم إعادة إنشاء ذاكرة التخزين المؤقت تلقائيًا تقريبًا (نقوم بذلك يدويًا بوعي). باستخدام git hook صغير ، يتم تنفيذ نص PHP مع كل "سحب". كيفية تفعيل الخطاف:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

وظيفة المساعد التالية مفيدة أيضًا في قياس أجزاء الكود الفردية (أو وقت التنفيذ بالكامل):

085f4291bbcc4e8a64bbea951ff49ab9

إذا كنت ترغب في الحصول على معلومات مفيدة مثل الحالة أو الذاكرة المستخدمة أو عدد الملفات المخزنة مؤقتًا ، فأنت تستخدم وظيفة PHP هذه:

3f6309d04bc7e48dd909859321b96209

من أجل الاستفادة من OPcache في بيئة تطوير محلية (وهو أمر غير موصى به بشكل عام) ، نستخدم خدعة.

OPcache نشط على جميع الخوادم التي تم تثبيت وحدة OPcache عليها والتي لم يتم تعيين إعداد opcache.enable عليها بشكل صريح. نترك الأمر على هذا النحو. قمنا فقط بتعيين opcache.validate_timestamps = 1 في php.ini ، وهذا يعني أن opcache.revalidate_freq = 2. هذا يعني أنه يتم إعادة التحقق من OPcache بشكل مستمر تقريبًا لكل مشروع. بالنسبة لتلك المشاريع التي نريد تنشيط OPcache فيها بشكل دائم ، نستخدم المشاريع ذات الصلة في .htaccess الإعداد التالي:

1dd64a3f2fe4425b29b1409410fe3fc0

ثم نقوم بإعادة تشغيل خادم الويب وإنشاء البرنامج النصي التالي:

91fb5289160e410607c9ea89112a575b

يمسح هذا البرنامج النصي ذاكرة التخزين المؤقت ويعيد بنائها في نفس الوقت. الآن قمنا بتعيين أمر RunOnSave المتعلق بمساحة العمل في محررنا المفضل VSCode:

91fb5289160e410607c9ea89112a575b

عودة