دليل تحجيم مجموعة Azure HDInsight Interactive Query (Hive LLAP)

يصف هذا المستند كيفية تحجيم مجموعة HDInsight Interactive Query (مجموعة Hive LLAP) لأحمال عمل نموذجية لتحقيق أداء معقول. لاحظ أن التوصيات الواردة في هذا المستند هي إرشادات عامة، وأن أحمال العمل المحددة قد تحتاج إلى ضبط محدد.

أنواع أجهزة Azure الظاهرية لمجموعة HDInsight Interactive Query Cluster(LLAP)

نوع العقدة ‏‏مثيل الحجم
الرأس D13 v2 8 vcpus، ذاكرة وصول عشوائي 56 غيغابايت، 400 غيغابايت SSD
العامل D14 v2 ذاكرة وصول عشوائي 16 vcpusو112 غيغابايت و800 غيغابايت SSD
ZooKeeper A4 v2 ذاكرة وصول عشوائي 4 vcpus، 8 غيغابايت، 40 غيغابايت SSD

ملاحظة: تستند جميع قيم التكوينات الموصى بها إلى العقدة العاملة من نوع D14 v2

التكوين:

مفتاح التكوين القيمة الموصى بها ‏‏الوصف
yarn.nodemanager.resource.memory-mb 102400 (ميغابايت) إجمالي الذاكرة المعطاة بالميغابايت، لجميع حاويات YARN في العقدة
yarn.scheduler.maximum-allocation-mb 102400 (ميغابايت) الحد الأقصى للتخصيص لكل طلب حاوية في RAM بالميغابايت. طلبات الذاكرة الأعلى من هذه القيمة لن تصبح نافذة المفعول
yarn.scheduler.maximum-allocation-vcores 12 الحد الأقصى لعدد نوى وحدة المعالجة المركزية لكل طلب حاوية في Azure Resource Manager. الطلبات الأعلى من هذه القيمة لن تصبح نافذة المفعول.
yarn.nodemanager.resource.cpu-vcores 12 عدد أنوية وحدة المعالجة المركزية لكل NodeManager التي يمكن تخصيصها للحاويات.
yarn.scheduler.capacity.root.llap.capacity 85 (%) تخصيص سعة YARN لقائمة انتظار LLAP
tez.am.resource.memory.mb 4096 (MB) مقدار سعة الذاكرة بالميغابايت لاستخدامها بواسطة tez AppMaster
hive.server2.tez.sessions.per.default.queue <number_of_worker_nodes> عدد الجلسات لكل قائمة انتظار موجودة في hive.server2.tez.default.queues. يتوافق هذا الرقم مع عدد منسقي الاستعلام (Tez AMs)
hive.tez.container.size 4096 (MB) حجم حاوية Tez المحدد بالميغابايت
hive.llap.daemon.num.executors 19 عدد المنفذين لكل برنامج LLAP خفي
hive.llap.io.threadpool.size 19 حجم تجمع سلاسل البيانات للمنفذين
hive.llap.daemon.yarn.container.mb 81920 (ميغابايت) إجمالي سعة الذاكرة بالميغابايت المستخدمة بواسطة برنامج LLAP خفي فردي (ميغابايت لكل برنامج خفي)
hive.llap.io.memory.size 242688 (ميغابايت) حجم ذاكرة التخزين المؤقت بالميغابايت لكل برنامج LLAP خفي بشرط تمكين ذاكرة التخزين المؤقت لـ SSD
hive.auto.convert.join.noconditionaltask.size 2048 (MB) حجم الذاكرة بالميغابايت للقيام "بتخطيط الانضمام"

تصميم/مكونات LLAP:

`LLAP Architecture/Components`.

تقديرات حجم برنامج LLAP الخفي:

1. تحديد إجمالي تخصيص ذاكرة YARN لجميع الحاويات في العقدة

التكوين: yarn.nodemanager.resource.memory-mb

تشير هذه القيمة إلى الحد الأقصى لمقدار الذاكرة بالميغابايت التي يمكن استخدامها بواسطة حاويات YARN في كل عقدة. يجب أن تكون القيمة المحددة أقل من إجمالي حجم الذاكرة الفعلية في تلك العقدة.
إجمالي مقدار الذاكرة لجميع حاويات YARN في عقدة = (إجمالي الذاكرة الفعلية - الذاكرة لنظام التشغيل + خدمات أخرى)
اضبط هذه القيمة على ~90% من حجم ذاكرة الوصول العشوائي المتاحة.
بالنسبة إلى D14 v2، تبلغ القيمة الموصى بها 102400 ميغابايت

2. تحديد الحد الأقصى لمقدار الذاكرة لكل طلب حاوية YARN

التكوين: yarn.scheduler.maximum-signature-mb

تشير هذه القيمة إلى الحد الأقصى للتخصيص لكل طلب حاوية في Resource Manager بالميغابايت. طلبات الذاكرة الأعلى من هذه القيمة المحددة لن تصبح نافذة المفعول. يمكن لـ Resource Manager إعطاء وحدات ذاكرة للحاويات بزيادات من yarn.scheduler.minimum-allocation-mb ولا يمكن أن يتجاوز الحجم المحدد بواسطة yarn.scheduler.maximum-signature-mb. يجب ألا تزيد القيمة المحددة عن إجمالي الذاكرة المحددة لجميع الحاويات في العقدة المحددة بواسطة yarn.nodemanager.resource.memory-mb.
بالنسبة للعقد العاملة D14 v2، تبلغ القيمة الموصى بها 102400 ميغابايت

3. تحديد الحد الأقصى لمقدار vcores طلب حاوية YARN

التكوين: yarn.scheduler.maximum-signature-vcores

تشير هذه القيمة إلى الحد الأقصى لعدد أنوية وحدة المعالجة المركزية الظاهرية لكل طلب حاوية في Resource Manager. لن يسري طلب عدد أكبر من vcores هذه القيمة. إنها خاصية عالمية لجدولة YARN. بالنسبة لحاوية برنامج LLAP الخفي، يمكن تعيين هذه القيمة إلى 75٪ من الإجمالي المتاح vcores. ويجب حجز نسبة 25% المتبقية لـ NodeManager وDataNode والخدمات الأخرى التي تعمل في العقد العاملة.
هناك 16 vcores على الأجهزة الظاهرية D14 v2 ويمكن استخدام 75٪ من الإجمالي 16 vcores بواسطة حاوية برنامج LLAP الخفي.
بالنسبة إلى D14 v2، تبلغ القيمة الموصى بها 12.

4. عدد الاستعلامات المتزامنة

التكوين: hive.server2.tez.sessions.per.default.queue

تحدد قيمة التكوين هذه عدد جلسات Tez التي يمكن نشرها بالتوازي. يتم تشغيل جلسات Tez هذه لكل قائمة من قوائم الانتظار المحددة بواسطة "hive.server2.tez.default.queues. " وهو يتوافق مع عدد Tez AMs (منسقو الاستعلام). من المستحسن أن يكون عدده مثل عدد العقد العاملة. يمكن أن يكون عدد Tez AMs أعلى من عدد عقد الخفية LLAP. تتمثل المسؤولية الأساسية لـ Tez AM في تنسيق تنفيذ الاستعلام وتعيين أجزاء خطة الاستعلام لبرامج LLAP الخفية المقابلة لأجل التنفيذ. احتفظ بهذه القيمة كمضاعف للعديد من العقد الخفية LLAP لتحقيق معدل نقل أعلى.

تحتوي مجموعة HDInsight الافتراضية على أربعة برامج LLAP خفية تعمل على أربع عقد عاملة، وبالتالي فإن القيمة الموصى بها هي 4.

شريط تمرير واجهة المستخدم لـ Ambari لمتغير تكوين Hivehive.server2.tez.sessions.per.default.queue:

`LLAP maximum concurrent queries`.

5- حاوية Tez والحجم الرئيسي لتطبيق Tez

التكوين: tez.am.resource.memory.mb، hive.tez.container.size

tez.am.resource.memory.mb - يحدد حجم تطبيق Tez الرئيسي.
القيمة الموصى بها هي 4096 ميغابايت.

hive.tez.container.size - يحدد مقدار الذاكرة المعطى لحاوية Tez. يجب تعيين هذه القيمة بين الحد الأدنى لحجم الحاوية YARN (yarn.scheduler.minimum-allocation-mb) والحد الأقصى لحجم حاوية YARN (yarn.scheduler.maximum-allocation-mb). يستخدم منفذو برنامج LLAP الخفي هذه القيمة للحد من استخدام الذاكرة لكل منفذ.
القيمة الموصى بها هي 4096 ميغابايت.

6. تخصيص سعة قائمة انتظار LLAP

التكوين: yarn.scheduler.capacity.root.llap.capacity

تشير هذه القيمة إلى نسبة مئوية من السعة المعطاة لقائمة انتظار LLAP. قد يكون لتخصيصات السعة قيم مختلفة لأحمال العمل المختلفة اعتماداً على كيفية تكوين قوائم انتظار YARN. إذا كانت أحمال العمل عبارة عن عمليات للقراءة فقط، فيجب أن يعمل تعيين نسبة 90% من السعة. ومع ذلك، إذا كان حمل العمل الخاص بك مزيجا من عمليات التحديث/الحذف/الدمج باستخدام الجداول المدارة، فمن المستحسن منح 85٪ من سعة قائمة انتظار LLAP. يمكن استخدام السعة المتبقية البالغة 15% من خلال مهام أخرى مثل الضغط وما إلى ذلك لتخصيص الحاويات من قائمة الانتظار الافتراضية. وبهذه الطريقة، لن تُحرَم المهام في قائمة الانتظار الافتراضية من موارد YARN.

بالنسبة للعقد العاملة D14v2، القيمة الموصى بها لقائمة انتظار LLAP هي 85.
(بالنسبة إلى أحمال العمل للقراءة فقط، يمكن زيادتها حتى 90 حسب الملاءمة.)

7. حجم حاوية برنامج LLAP الخفي

التكوين: hive.llap.daemon.yarn.container.mb

يتم تشغيل برنامج LLAP الخفي كحاوية YARN في كل عقدة عاملة. يعتمد حجم الذاكرة الإجمالي لحاوية برنامج LLAP الخفي على العوامل التالية:

  • تكوينات حجم حاوية YARN (yarn.scheduler.minimum-allocation-mb، yarn.scheduler.maximum-allocation-mb، yarn.nodemanager.resource.memory-mb)
  • عدد Tez AMs في العقدة
  • إجمالي الذاكرة المكونة لجميع الحاويات على العقدة وسعة قائمة انتظار LLAP

يمكن حساب الذاكرة التي يحتاجها برنامج Tez Application Masters (Tez AM) على النحو التالي.
يعمل Tez AM كمنسق استعلام ويجب تكوين عدد Tez AMs استنادا إلى العديد من الاستعلامات المتزامنة التي سيتم تقديمها. من الناحية النظرية، يمكننا إعطاء Tez AM واحداً لكل عقدة عاملة. ومع ذلك، من الممكن أن ترى أكثر من Tez AM واحد على عقدة عاملة. لأغراض الحساب، نفترض توزيعاً موحداً لـ Tez AMs عبر جميع عُقد برنامج LLAP الخفي/العقد العاملة. من المستحسن أن يكون لديك ذاكرة تبلغ 4 غيغابايت لكل Tez AM.

Number of Tez Ams = value specified by Hive config hive.server2.tez.sessions.per.default.queue.
Number of LLAP daemon nodes = specified by env variable num_llap_nodes_for_llap_daemons in Ambari UI.
Tez AM container size = value specified by Tez config tez.am.resource.memory.mb.

ذاكرة Tez AM لكل عقدة = (ceil(عدد Tez AMs / Number of LLAP daemon nodes)x Tez AM container size**)**
بالنسبة إلى D14 v2، يشتمل التكوين الافتراضي على أربع وحدات Tez AMs وأربع عقد برنامج LLAP خفية.
ذاكرة Tez AM لكل عقدة = (الحد الأقصى (4/4) × 4 غيغابايت) = 4 غيغابايت

يمكن حساب إجمالي الذاكرة المتاحة لقائمة انتظار LLAP لكل عقدة عاملة على النحو التالي:
تعتمد هذه القيمة على إجمالي مقدار الذاكرة المتوفرة لجميع حاويات YARN على عقدة (yarn.nodemanager.resource.memory-mb) والنسبة المئوية للسعة المكونة لقائمة انتظار LLAP(yarn.scheduler.capacity.root.llap.capacity).
إجمالي الذاكرة لقائمة انتظار LLAP على عقدة العامل = إجمالي الذاكرة المتوفرة لجميع حاويات YARN على عقدة x النسبة المئوية للسعة لقائمة انتظار LLAP.
بالنسبة إلى D14 v2، تبلغ هذه القيمة (100 غيغابايت × 0.85) = 85 غيغابايت.

يتم حساب حجم حاوية برنامج LLAP الخفي على النحو التالي:

حجم حاوية برنامج LLAP الخفي = (إجمالي الذاكرة لقائمة انتظار LLAP على عقدة عاملة) - (ذاكرة Tez AM لكل عقدة) - (حجم حاوية Service Master)
لا يوجد سوى خدمة رئيسية واحدة (التطبيق الرئيسي لخدمة LLAP) على المجموعة التي تم إنتاجها في إحدى العقد العاملة. لغرض الحساب، نعطي خدمة رئيسية واحدة لكل عقدة عاملة.
بالنسبة للعقدة العاملة D14 v2، HDI 4.0 - القيمة الموصى بها هي (85 غيغابايت - 4 غيغابايت - 1 غيغابايت)) = 80 غيغابايت

8. تحديد عدد المنفذين لكل برنامج LLAP خفي

التكوين: hive.llap.daemon.num.executors, hive.llap.io.threadpool.size

hive.llap.daemon.num.executors:
يتحكم هذا التكوين في عدد المنفذين الذين يمكنهم تنفيذ المهام بالتوازي مع كل من الخفي LLAP. تعتمد هذه القيمة على عدد vcores، ومقدار الذاكرة المستخدمة لكل منفذ، ومقدار الذاكرة الإجمالية المتاحة لحاوية برنامج LLAP الخفي. يمكن زيادة اشتراك عدد المنفذين بنسبة 120% من النوى المتاحة لكل عقدة عاملة. ولكن يجب تعديله إذا لم يفي بمتطلبات الذاكرة بناءً على الذاكرة المطلوبة لكل منفذ وحجم حاوية برنامج LLAP الخفي.

كل منفذ يعادل حاوية Tez ويمكن أن يستهلك 4 غيغابايت (حجم حاوية Tez) من الذاكرة. يشترك جميع المنفذين في برنامج LLAP الخفي في نفس كومة الذاكرة المؤقتة. مع افتراض عدم قيام جميع المنفذين بتشغيل عمليات مكثفة للذاكرة في نفس الوقت، يمكنك افتراض 75% من حجم حاوية Tez (4 غيغابايت) لكل منفذ. بهذه الطريقة يمكنك زيادة عدد المنفذين عن طريق إعطاء كل منفذ ذاكرة أقل (على سبيل المثال، 3 غيغابايت) لزيادة التوازي. ولكن يوصى بضبط هذا الإعداد ليناسب حجم العمل المستهدف.

يوجد 16 vcores على أجهزة D14 v2 الظاهرية. بالنسبة إلى D14 v2، القيمة الموصى بها لعدد المنفذين هي (16 vcores × 120٪) ~= 19 على كل عقدة عاملة تفكر في 3 غيغابايت لكل منفذ.

hive.llap.io.threadpool.size:
تحدد هذه القيمة حجم تجمع مؤشر الترابط للمنفذين. نظرا إلى أن المنفذين ثابتين كما هو محدد، فهو نفس عدد المنفذين لكل برنامج خفي LLAP.
بالنسبة إلى D14 v2، تبلغ القيمة الموصى بها 19.

9. تحديد حجم ذاكرة التخزين المؤقت لبرنامج LLAP الخفي

التكوين: hive.llap.io.memory.size

تتكون ذاكرة حاوية برنامج LLAP الخفي من المكونات التالية:

  • المساحة الزائدة
  • ذاكرة كومة الذاكرة المؤقتة المستخدمة من قِبل المنفذين (Xmx)
  • ذاكرة التخزين المؤقت في الذاكرة لكل برنامج خفي (حجم الذاكرة خارج كومة الذاكرة المؤقتة، لا ينطبق عند تمكين ذاكرة التخزين المؤقت لـ SSD)
  • حجم بيانات التعريف لذاكرة التخزين المؤقت في الذاكرة (ينطبق فقط عند تمكين ذاكرة التخزين المؤقت لـ SSD)

حجم غرفة الرأس: يشير هذا الحجم إلى جزء من ذاكرة كومة الذاكرة المؤقتة المستخدمة للنفقات العامة لجهاز Java الظاهري (مساحة التعريف ومكدس gc مؤشرات الترابط وهياكل البيانات وما إلى ذلك). بشكل عام، يمثل هذا الحمل الزائد حوالي 6% من حجم كومة الذاكرة المؤقتة (Xmx). لتأمين نفسك، يمكنك حساب هذه القيمة على أنها 6% من إجمالي حجم ذاكرة برنامج LLAP الخفي.
بالنسبة إلى D14 v2، تبلغ القيمة الموصى بها الحد الأقصى (80 غيغابايت × 0.06) ~= 4 غيغابايت.

حجم كومة الذاكرة المؤقتة (Xmx): هو مقدار كومة الذاكرة المؤقتة المتاح لجميع المنفذين. إجمالي حجم كومة الذاكرة المؤقتة = عدد المنفذين × 3 غيغابايت
بالنسبة إلى D14 v2، تبلغ هذه القيمة 19 × 3 غيغابايت = 57 غيغابايت

Ambari environment variable for LLAP heap size:

`LLAP heap size`.

عند تعطيل ذاكرة التخزين المؤقت لـ SSD، تعد ذاكرة التخزين المؤقت في الذاكرة هي مقدار الذاكرة المتبقية بعد إخراج حجم المساحة الزائدة وحجم كومة الذاكرة المؤقتة من حجم حاوية برنامج LLAP الخفي.

يختلف حساب حجم ذاكرة التخزين المؤقت عند تمكين ذاكرة التخزين المؤقت لـ SSD. يؤدي تعيين hive.llap.io.allocator.mmap = true إلى تمكين التخزين المؤقت ل SSD. عند تمكين ذاكرة التخزين المؤقت لـ SSD، سيتم استخدام جزء من الذاكرة لتخزين بيانات التعريف لذاكرة التخزين المؤقت لـ SSD. يتم تخزين بيانات التعريف في الذاكرة، ومن المتوقع أن تكون ~8% من حجم ذاكرة التخزين المؤقت لـ SSD.
حجم بيانات التعريف في الذاكرة المؤقتة لـ SSD = حجم حاوية برنامج LLAP الخفي - (المساحة الزائدة + حجم كومة ذاكرة مؤقتة)
بالنسبة إلى D14 v2 مع HDI 4.0، يبلغ حجم بيانات التعريف في ذاكرة التخزين المؤقت لـ SSD = 80 غيغابايت - (4 غيغابايت + 57 غيغابايت) = 19 غيغابايت

نظراً إلى حجم الذاكرة المتاحة لتخزين بيانات التعريف لذاكرة التخزين المؤقت لـ SSD، يمكننا حساب حجم ذاكرة التخزين المؤقت لـ SSD التي يمكن دعمها.
حجم بيانات التعريف في الذاكرة لذاكرة التخزين المؤقت SSD = حجم حاوية LLAP الخفي - (مساحة الرأس + حجم الكومة) = 19 غيغابايت
حجم ذاكرة التخزين المؤقت لـ SSD = حجم بيانات التعريف في الذاكرة لذاكرة التخزين المؤقت لـ SSD (19 غيغابايت) / 0.08 (8 بالمائة)

بالنسبة إلى D14 v2 وHDI 4.0، يبلغ حجم ذاكرة التخزين المؤقت لـ SSD الموصى به = 19 غيغابايت / 0.08 ~= 237 غيغابايت

10. ضبط ذاكرة تخطيط الانضمام

التكوين: hive.auto.convert.join.noconditionaltask.size

تأكد من تمكين hive.auto.convert.join.noconditionaltask لهذه المعلمة لتصبح سارية المفعول. يحدد هذا التكوين حد تحديد MapJoin بواسطة محسن Hive الذي يأخذ في الاعتبار الاشتراك الزائد في الذاكرة من المنفذين الآخرين للحصول على مساحة أكبر لجداول التجزئة في الذاكرة للسماح بمزيد من تحويلات الانضمام إلى الخريطة. بالنظر إلى 3 غيغابايت لكل منفذ، يمكن الإفراط في الاشتراك في هذا الحجم إلى 3 غيغابايت، ولكن يمكن أيضا استخدام بعض ذاكرة كومة الذاكرة المؤقتة لمخازن الفرز المؤقتة، والمخازن المؤقتة العشوائية، وما إلى ذلك بواسطة العمليات الأخرى.
لذلك بالنسبة إلى D14 v2، مع ذاكرة 3 غيغابايت لكل منفذ، يوصى بتعيين هذه القيمة إلى 2048 ميغابايت.

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

11. عدد برامج LLAP الخفية

متغيرات بيئة Ambari: num_llap_nodes، num_llap_nodes_for_llap_daemons

num_llap_nodes - يحدد عدد العقد المستخدمة بواسطة خدمة Hive LLAP، ويشمل ذلك العقد التي تشغل برامج LLAP الخفية وخدمة LLAP الرئيسية وTez Application Master (Tez AM).

`Number of Nodes for LLAP service`.
num_llap_nodes_for_llap_daemons - عدد محدد من العقد المستخدمة فقط لبرامج LLAP الخفية. يتم تعيين أحجام حاوية برنامج LLAP الخفي إلى أقصى عقدة مناسبة، لذلك ينتج عنها برنامج خفي واحد llap على كل عقدة.

`Number of Nodes for LLAP daemons`.

يُستحسن أن تماثل كلتا القيمتين عدد العقد العاملة في مجموعة Interactive Query.

اعتبارات خاصة بإدارة أحمال العمل

إذا كنت ترغب في تمكين ميزة إدارة أحمال العمل لـ LLAP، فتأكد من الاحتفاظ بسعة كافية لإدارة أحمال العمل لتعمل كما هو متوقع. تتطلب إدارة أحمال العمل تكوين قائمة انتظار YARN مخصصة، بالإضافة إلى قائمة انتظار llap. تأكد من تقسيم إجمالي سعة موارد نظام المجموعة بين llap قائمة انتظار وإدارة حمل العمل وفقا لمتطلبات حمل العمل الخاص بك. تُنتج إدارة أحمال العمل برنامج Tez Application Masters (Tez AMs) عند تنشيط خطة الموارد.

ملاحظة:

  • يتم إنتاج Tez AMs من خلال تنشيط خطة موارد تستهلك الموارد من قائمة انتظار إدارة أحمال العمل كما هو محدد بواسطة hive.server2.tez.interactive.queue.
  • سيعتمد عدد Tez AMs على قيمة QUERY_PARALLELISM المحددة في خطة الموارد.
  • بمجرد أن تكون إدارة حمل العمل نشطة، لن يتم استخدام Tez AMs في قائمة انتظار LLAP. ويتم استخدام Tez AMs فقط من قائمة انتظار إدارة أحمال العمل لتنسيق الاستعلام. يتم استخدام Tez AMs في قائمة الانتظار llap عندما يتم تعطيل إدارة أحمال العمل.

على سبيل المثال: إجمالي سعة نظام المجموعة = ذاكرة 100 غيغابايت، مقسمة بين LLAP وإدارة حمل العمل وقوائم الانتظار الافتراضية كما يلي:

  • سعة قائمة انتظار LLAP = 70 غيغابايت
  • سعة قائمة انتظار إدارة أحمال العمل = 20 غيغابايت
  • سعة قائمة الانتظار الافتراضية = 10 غيغابايت

مع 20 جيجابايت في سعة قائمة انتظار إدارة حمل العمل، يمكن لخطة الموارد تحديد QUERY_PARALLELISM القيمة على أنها خمسة، ما يعني أن إدارة حمل العمل يمكنها تشغيل خمسة Tez AMs بحجم حاوية 4 غيغابايت لكل منها. إذا كان QUERY_PARALLELISM أعلى من السعة، فقد ترى أن بعض Tez AMs تتوقف عن الاستجابة في حالة ACCEPTED. لا يمكن لخادم Hive 2 Interactive إرسال أجزاء الاستعلام إلى Tez AMs غير الموجودة في RUNNING الحالة.

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

إذا لم يؤد تعيين هذه القيم إلى حل مشكلتك، فانتقل إلى أحد الخيارات التالية...