تحليل أداء وظيفة Stream Analytics باستخدام المقاييس والأبعاد

لفهم صحة وظيفة Azure Stream Analytics، من المهم معرفة كيفية استخدام مقاييس الوظيفة وأبعادها. يمكنك استخدام مدخل Microsoft Azure أو ملحق Visual Studio Code Stream Analytics أو SDK للحصول على المقاييس والأبعاد التي تهتم بها.

توضح هذه المقالة كيفية استخدام مقاييس وظيفة Stream Analytics وأبعادها لتحليل أداء الوظيفة من خلال مدخل Microsoft Azure.

تأخير العلامة المائية وأحداث الإدخال المتراكمة هي المقاييس الرئيسية لتحديد أداء وظيفة Stream Analytics. إذا كان تأخير العلامة المائية لوظيفتك يتزايد باستمرار وكانت أحداث الإدخال متراكمة، فلن تتمكن وظيفتك من مواكبة معدل أحداث الإدخال وإنتاج المخرجات في الوقت المناسب.

لنلق نظرة على عدة أمثلة لتحليل أداء الوظيفة من خلال بيانات قياس تأخير العلامة المائية كنقطة بداية.

لا يوجد إدخال لقسم معين يزيد من تأخير العلامة المائية للوظيفة

إذا كان تأخير العلامة المائية للعلامة المائية المتوازية بشكل محرج يتزايد باطراد، فانتقل إلى Metrics. ثم استخدم هذه الخطوات لمعرفة ما إذا كان السبب الجذري هو نقص البيانات في بعض أقسام مصدر الإدخال الخاص بك:

  1. تحقق من القسم الذي يحتوي على تأخير العلامة المائية المتزايد. حدد مقياس تأخير العلامة المائية وقسمه حسب بعد معرف القسم. في المثال التالي، يحتوي القسم 465 على تأخير علامة مائية عالية.

    لقطة شاشة لمخطط يعرض تقسيم تأخير العلامة المائية حسب معرف القسم لحالة عدم وجود إدخال في القسم.

  2. تحقق مما إذا كانت أي بيانات إدخال مفقودة لهذا القسم. حدد مقياس أحداث الإدخال وقم بتصفيته إلى معرف القسم المحدد هذا.

    لقطة شاشة لمخطط يعرض تقسيم أحداث الإدخال حسب معرف القسم لحالة عدم وجود إدخال في القسم.

ما هو الإجراء الإضافي الذي يمكنك اتخاذه؟

يزيد تأخير العلامة المائية لهذا القسم لأنه لا توجد أحداث إدخال تتدفق إلى هذا القسم. إذا كانت نافذة التسامح الخاصة بوظيفتك للوصول المتأخر عدة ساعات ولا تتدفق أي بيانات إدخال إلى قسم، فمن المتوقع أن يستمر تأخير العلامة المائية لهذا القسم في الزيادة حتى يتم الوصول إلى نافذة الوصول المتأخر.

على سبيل المثال، إذا كانت نافذة الوصول المتأخرة 6 ساعات ولم تتدفق بيانات الإدخال إلى قسم الإدخال 1، فسيزداد تأخير العلامة المائية لقسم الإخراج 1 حتى يصل إلى 6 ساعات. يمكنك التحقق مما إذا كان مصدر الإدخال الخاص بك ينتج البيانات كما هو متوقع.

يؤدي انحراف بيانات الإدخال إلى تأخير العلامة المائية العالية

كما هو مذكور في الحالة السابقة، عندما يكون لمهمتك المتوازية المحرجة تأخير علامة مائية عالية، فإن أول شيء يجب القيام به هو تقسيم مقياس تأخير العلامة المائية حسب بعد معرف القسم. يمكنك بعد ذلك تحديد ما إذا كانت جميع الأقسام لديها تأخير علامة مائية عالية، أو عدد قليل منها فقط.

في المثال التالي، الأقسام 0 و1 لها تأخير العلامة المائية أعلى (حوالي 20 إلى 30 ثانية) من الأقسام الثمانية الأخرى. دائمًا ما تكون تأخيرات العلامة المائية للأقسام الأخرى ثابتة عند حوالي 8 إلى 10 ثوان.

لقطة شاشة لمخطط يعرض

دعونا نتحقق مما تبدو عليه بيانات الإدخال لجميع هذه الأقسام مع تقسيم أحداث الإدخال المترية حسب معرف القسم:

لقطة شاشة لمخطط يعرض أحداث الإدخال مقسمة حسب معرف القسم لحالة انحراف البيانات.

ما هو الإجراء الإضافي الذي يمكنك اتخاذه؟

كما هو موضح في المثال، تتلقى الأقسام (0 و1) التي تحتوي على تأخير علامة مائية عالية بيانات إدخال أكثر بكثير من الأقسام الأخرى. نطلق على انحراف البياناتهذا. تحتاج عقد الدفق التي تعالج الأقسام مع انحراف البيانات إلى استهلاك موارد وحدة المعالجة المركزية والذاكرة أكثر من غيرها، كما هو موضح في لقطة الشاشة التالية.

لقطة شاشة لمخطط يوضح استخدام الموارد للأقسام مع انحراف البيانات.

ستُظهر عُقد الدفق التي تعالج الأقسام ذات الانحراف الأعلى للبيانات استخدامًا أعلى لوحدة المعالجة المركزية و / أو وحدة التدفق (SU). سيؤثر هذا الاستخدام على أداء الوظيفة ويزيد من تأخير العلامة المائية. للتخفيف من هذا، تحتاج إلى إعادة تقسيم بيانات الإدخال بشكل أكثر التساوي.

يمكنك أيضا تصحيح هذه المشكلة باستخدام الرسم التخطيطي للوظيفة الفعلية، راجع الرسم التخطيطي للوظيفة الفعلية: تحديد أحداث الإدخال الموزعة غير المتساوية (انحراف البيانات).

يزيد التحميل الزائد لوحدة المعالجة المركزية أو الذاكرة من تأخير العلامة المائية

عندما يكون لوظيفة موازية بشكل محرج تأخير متزايد للعلامة المائية، فقد يحدث ذلك ليس فقط على قسم واحد أو عدة أقسام، ولكن على جميع الأقسام. كيف تؤكد أن وظيفتك تقع في هذه الحالة؟

  1. تقسيم مقياس تأخير العلامة المائية حسب معرف القسم. على سبيل المثال:

    لقطة شاشة للمخطط الذي يعرض Watermark Delay مقسومًا على معرف القسم لحالة وحدة المعالجة المركزية والذاكرة المحملة بشكل زائد.

  2. تقسيم مقياس أحداث الإدخال حسب معرف القسم لتأكيد ما إذا كان هناك انحراف بيانات في بيانات الإدخال لكل قسم.

  3. تحقق من استخدام CPU و SU لمعرفة ما إذا كان الاستخدام في جميع عقد الدفق مرتفعًا جدًا.

    لقطة شاشة لرسم بياني يوضح استخدام وحدة المعالجة المركزية والذاكرة مقسومًا حسب اسم العقدة في حالة زيادة تحميل وحدة المعالجة المركزية والذاكرة.

  4. إذا كان استخدام وحدة المعالجة المركزية ووحدة التخزين عالية جدًا (أكثر من 80 في المائة) في جميع عقد البث، فيمكنك استنتاج أن هذه المهمة تحتوي على كمية كبيرة من البيانات التي تتم معالجتها داخل كل عقدة دفق.

    يمكنك أيضًا التحقق من عدد الأقسام المخصصة لعقدة دفق واحدة عن طريق التحقق من مقياس أحداث الإدخال. قم بالتصفية حسب دفق معرف العقدة مع بعد اسم العقدة، وتقسيمها حسب معرف القسم.

    لقطة شاشة لمخطط يعرض عدد الأقسام على عقدة دفق واحدة في حالة زيادة تحميل وحدة المعالجة المركزية والذاكرة.

  5. توضح لقطة الشاشة السابقة أنه تم تخصيص أربعة أقسام لعقدة دفق واحدة تشغل حوالي 90 إلى 100 بالمائة من مورد عقدة التدفق. يمكنك استخدام طريقة مماثلة للتحقق من بقية عقد البث للتأكد من أنها تقوم أيضًا بمعالجة البيانات من أربعة أقسام.

ما هو الإجراء الإضافي الذي يمكنك اتخاذه؟

قد ترغب في تقليل عدد الأقسام لكل عقدة دفق لتقليل بيانات الإدخال لكل عقدة دفق. لتحقيق ذلك، يمكنك مضاعفة وحدات SU لجعل كل عقدة دفق تتعامل مع البيانات من قسمين. أو يمكنك مضاعفة وحدات SU أربع مرات لجعل كل عقدة متدفقة تتعامل مع البيانات من قسم واحد. للحصول على معلومات حول العلاقة بين تعيين SU وعدد العقد المتدفقة، راجع فهم وحدات التدفق وضبطها.

ماذا يجب أن تفعل إذا كان تأخير العلامة المائية لا يزال يتزايد عندما تقوم عقدة دفق واحدة بمعالجة البيانات من قسم واحد؟ أعد تقسيم الإدخال الخاص بك مع المزيد من الأقسام لتقليل كمية البيانات في كل قسم. للحصول على التفاصيل، راجع استخدام إعادة تقسيم لتحسين وظائف Azure Stream Analytics.

يمكنك أيضا تصحيح هذه المشكلة باستخدام الرسم التخطيطي للوظيفة الفعلية، راجع الرسم التخطيطي للوظيفة الفعلية: تحديد سبب تحميل وحدة المعالجة المركزية أو الذاكرة بشكل زائد.

الخطوات التالية