العودة
Cloudflare تضيف تحليل أداء CPU والذاكرة عند الطلب لـ Workers وDurable Objects
SiTech AI Team3 دقيقة قراءة

Cloudflare تضيف تحليل أداء CPU والذاكرة عند الطلب لـ Workers وDurable Objects

تدعم Cloudflare الآن تحليل أداء CPU والذاكرة عند الطلب لـ Workers وDurable Objects؛ وتتوفر مخططات flamegraph تفاعلية من لوحة التحكم أو CLI لحركة المرور الإنتاجية الحقيقية.

التحليل عند الطلب لـ Workers وDurable Objects

أضافت Cloudflare تحليل أداء CPU والذاكرة عند الطلب لـ Workers وDurable Objects. من صفحة Workers Observability يمكن للمطورين طلب ملف تعريف لنسخة Worker نشطة، وعرضه عبر flamegraph تفاعلي، وتنزيل الملف. وتقول الشركة إن التحليل في بيئة الإنتاج هو أفضل طريقة لفهم سلوك التطبيق.

كيف تأخذ ملف التعريف

تبدأ الجلسة من Cloudflare Dashboard أو CLI. في Dashboard اختر Worker، افتح Observability، ثم من قائمة Flamegraph اطلب ملف تعريف CPU أو الذاكرة، واختر المدة والإصدار. يتطلب CLI حزمة cf وأمرًا، على سبيل المثال cf workers versions profile latest worker ID، مع المدة والنوع؛ والنتيجة ملف pprof.

يتطلب تحليل Worker حركة مرور كافية، لذا اختر إصدارًا نشطًا. في flamegraph يمثل المستطيل استدعاء دالة، ويظهر العرض وقت CPU أو الذاكرة الخاص بها؛ والنقر يركز، ويعرض المؤشر التفاصيل، ويعرض الجدول الدوال المتكررة. في مشاريع TypeScript فعّل source maps، وإلا ستظهر الأسماء مُضطربة.

نتائج حقيقية

استخدمت فرق Cloudflare هذه الميزة بالفعل لتحسين الذاكرة وCPU، وإصلاح أخطاء out-of-memory، وتحسين الأداء. أظهر ملف تعريف CPU لعامل Worker مرتبط بـ R2 binding أن أكثر من 5% من وقت CPU كان يذهب إلى genericR2JsonReplacer لأنه كان يمر عبر JSON.stringify بشكل متكرر على شجرة JSON. سرّع الإصلاح الدالة 2,7 مرة. كما أزال استدعاء مكرر لمقياس، كان نحو 1% من وقت CPU، عن طريق تخزين النتيجة في متغير.

بلغ Worker داخلي حد 128 MB: كانت ذاكرة P999 نحو 133 MB وكانت عمليات الإخلاء «Exceeded Memory» متكررة. أظهر ملف تعريف heap (pprof) المأخوذ في الإنتاج أن نحو 66,7% كان يذهب إلى كود Prometheus في التوزيعات، رغم أنه كان يجب أن يكون معطلاً. خفض الحذف P50 من 70 إلى 54 MB، وP90 من 94 إلى 79 MB، وP99 من 113 إلى 97 MB، وP999 من 133 إلى 118 MB.

كيف يعمل وما بعده

يطبّق التحليل على تنفيذات إنتاجية حقيقية، لذلك لا يبدأ عزلًا جديدًا. يجب أن يعرف runtime أي إصدار سيتم تحليله، وما إذا كان عزله محمّلًا، وما إذا كان ينتمي إلى الحساب. بالنسبة إلى Durable Objects تُوجَّه الطلب إلى كائن محدد بالاسم وينتقل إلى metal الذي يملك actor.

لمنع حظر حركة المرور، يأخذ Workers Runtime قفل العزل فقط لعمليات دورة حياة profiler. لملف تعريف CPU ينشئ V8 CPU profiler بفاصل 1 ميلي ثانية، يحرر القفل، ينتظر المدة المحددة، ثم يأخذه مجددًا لإيقاف النتيجة وتسلسلها.

تشير Cloudflare إلى قيود: يجب بدء الجلسات يدويًا، لذلك قد تُفوات المشكلات قصيرة الأمد؛ ويغطي محلل الذاكرة نافذة التحليل فقط، ويغفل التوزيعات التي حدثت أثناء التحميل. تعمل الشركة على تحليل مستمر يأخذ العينات تلقائيًا، حتى يتمكن المطورون من رؤية ملفات التعريف في لوحة التحكم دون بدءها يدويًا.

المصادر: The Cloudflare Blog

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.