APC مع FCGId PHP Handler ليس حل جيد اذا كان السيرفر يستقبل 200+ ريكويست/ثانية.
لأن FCGId يعتمد في اساسه على توزيع الطلبات على عدة بروسيس، والبروسيس هذه لها وقت معين او عدد طلبات معين وبعدها يتم عمل ترمنيت لها، وهذا يعتمد على الاعدادات في تحديد النسب.
و APC بدورة لا يستخدم كاش مشترك بين هذه البروسيس، بل يقوم بعمل Cache Pool لكل بروسيس، وعند إطلاعك على APC Stats ستفهم هذا بشكل اوضح.
حسناً أين المشكلة في كل هذا؟
المشكلة عندما يكون السيرفر مزدحم باستقبال الطلبات ومعالجتها، وفي هذه الاثناء يتم عمل ترمنيت لاحد البروسيس (ممكن يكون اكثر من واحد بنفس الوقت)، هنا تخسر الكاش الذي كان موجود لهذا البروسيس.
والبروسيس الجديد الذي تم عمله يكون خالي من الكاش، وهنا يحتاج PHP Engine لإعادة تفسير ملفات PHP من جديد.
هنا يكمن عنق الزجاجة، حيث ان هذا الامر سوف يسبب ارتفاع اللود فجئة تخيل 100+ ريكويست فجئة على السيرفر وملفات PHP تحتاج لاعادة تفسير!
حالياً لم اجد حل فعلي لهذه المشكلة، جربت الكثير من الافكار وكلها فشلت. لكن الي متأكد منه ان الموديول هذا يحتاج لاعادة تفكير وتقييم لهذا السلوك، فلا اجد الاسلوب او الطريقة الحالية صحيحة في التعامل مع الكاش.
📮 المتابعة عبر البريد الالكتروني
عند الاشتراك سيصلك جديد منشوراتي ومقالاتي على ايميلك. لا يتم نشر اي اعلانات ابدًا، فقط المقالات التي انشرها هنا في مدونتي هذه.
التعليقات: 1 On APC مع FCGId PHP Handler ليس حل جيد
ملاحظة: هذه المشكلة تلاحظها فقط اذا كان السيرفر مزدحم جداً, عكس ذلك تاثيرها لا يذكر.