يتضمن تحديد العدد الأمثل لعمليات العمال لإعداد محدد فهم العديد من الجوانب التي تؤثر على مدى كفاءة هذه العمليات فيما يتعلق بخصائص الأجهزة وهندسة البرمجيات وتجميل العمل. لا يوجد إجابة واحدة تنافس الجميع ؛ يعتمد الرقم الأمثل على موارد النظام ونوع التطبيق وأهداف الأداء.
اعتبارات الأجهزة
العامل الأساسي المتعلق بالأجهزة هو عدد نوى وحدة المعالجة المركزية المتوفرة على الجهاز. يتمثل خط الأساس الذي ينصح به بشكل شائع في البدء بعملية عامل واحد لكل قلب وحدة المعالجة المركزية. يمكن بعد ذلك أن يتم تعدد كل عملية عامل لاستخدام دورات وحدة المعالجة المركزية بشكل أفضل ، وخاصة في السيناريوهات المرتبطة بالإدخال/الإخراج. يضمن هذا الأساس استخدام نوى وحدة المعالجة المركزية بشكل فعال دون التسبب في تبديل السياق المفرط أو التنافس العملية.
يلعب توفر الذاكرة أيضًا دورًا مهمًا. تستهلك كل عملية عامل ذاكرة الوصول العشوائي الإضافية ، لذلك إذا كانت العمليات ثقيلة أو تتعامل مع بيانات كبيرة ، فإن زيادة عدد العمال بما يتجاوز قدرة الذاكرة المتاحة يمكن أن يؤدي إلى التبديل ، مما يقلل بشكل كبير من الأداء. لذلك ، يجب حساب حجم الذاكرة وصمة الذاكرة لكل عملية في تحديد عدد العمال.
خصائص عبء العمل
يؤثر نوع عبء العمل بشكل كبير على العدد الأمثل لعمليات العمال. تستفيد التطبيقات المرتبطة بوحدة المعالجة المركزية ، حيث يقوم العمال بحسابات مكثفة ، من عدد العمال الذي يطابق نوى وحدة المعالجة المركزية لزيادة الاستخدام دون زيادة تحميل وحدة المعالجة المركزية. في المقابل ، قد تستفيد أعباء العمل المرتبطة بـ I/O ، والتي تقضي وقتًا كبيرًا في انتظار قراءات البيانات/تكتبها ، من عدد أكبر من العمال من نوى وحدة المعالجة المركزية لأنه بينما ينتظر عامل واحد ، يمكن للآخرين استخدام وقت وحدة المعالجة المركزية.
إن فهم توازن العمل المرتبط بوحدة المعالجة المركزية مقابل العمل المرتبط بـ I/O يساعد في ضبط رقم العامل. على سبيل المثال ، إذا كان التطبيق يقضي 50 ٪ من الوقت في انتظار معالجة I/O و 50 ٪ ، من الناحية النظرية ، يمكن أن تزيد عمليات العمال من النوى.
نظام التشغيل وسلوك الجدولة
يؤثر جدولة عملية نظام التشغيل على أداء عمليات العمال المتعددة. يمكن أن يؤدي عدد العمال المفرطين إلى تبديل السياق العالي ، حيث يتحول وحدة المعالجة المركزية بشكل متكرر بين العمليات ، مما يقلل من الكفاءة. يحتوي كل نظام تشغيل على نطاق مثالي من العمليات التي يمكنه إدارتها بفعالية اعتمادًا على خوارزمية الجدولة وتصميم kernel.
حدود التطبيق والحدود الإطارية
يمكن للتطبيق أو الإطار المحدد أن يفرض حدوده على عدد عمليات العمال التي يمكن استخدامها بفعالية. على سبيل المثال ، توصي بعض الخوادم أو الأطر بالضبط بناءً على عدد نوى وحدة المعالجة المركزية والذاكرة المتاحة ، ثم ضبط مؤشرات الترابط لكل عامل لتحسين الأداء. تحتوي بعض الأنظمة أيضًا على أقصى قدر من الحدود القابلة للتكوين للموضوعات والعمليات (على سبيل المثال ، مؤشرات ترابط العمال في قواعد البيانات).
مراقبة النظام والمعايير
القياس التجريبي أمر بالغ الأهمية. يساعد مراقبة استخدام وحدة المعالجة المركزية ، واستهلاك الذاكرة ، وأوقات الاستجابة ، والإنتاجية في عدد العمال المتغيرات في تحديد نقطة العوائد المتناقصة. يسمح القياس بموجب أعباء العمل المحاكاة أو الحقيقية لتحديد البقعة الحلوة حيث لم يعد العمال المتزايد يتحسن بشكل كبير أو حتى يتحلل.
ضبط لتطبيقات متعددة
عندما يتم تشغيل تطبيقات أو خدمات متعددة على نفس الجهاز ، يحتاج عدد العمال إلى ضبط لتبادل مراكز وحدة المعالجة المركزية وموارد الذاكرة بشكل مناسب. يمكن تقسيم النوى بالتناسب بين التطبيقات أو تحديد أولويات الخدمات الحرجة توجيه تخصيص العمال.
عوامل مؤثرة أخرى
- حساسية الكمون: إذا كان زمن الوصول المنخفض أمرًا بالغ الأهمية ، فقد يقلل المزيد من العمال من وقت قائمة انتظار الطلب ، ولكن يجب موازنة ذلك مقابل حدود الموارد.
- نموذج التزامن: يقلل متعدد الخيوط داخل العمال من الحاجة إلى تهم العمال العالية ، لكن إدارة إدارة الخيوط هي أيضًا اعتبار.
- مجموعة القمامة وقفل المترجم العالمي (GIL): بعض اللغات أو أوقات التشغيل لها قيود مثل GIL في Python ، والتي يمكن أن تؤثر على أداء العمال والخيط والتعداد الأمثل.
- قابلية التوسع والنمو المستقبلي: يمكن أن يؤثر التخطيط لزيادات الحمل المتوقعة على تكوين العمال الحالي ، مع ترك السعة للتوسع.
- طبيعة الوظيفة: تتمتع جميع المهام طويلة الأجل أو الحظر أو القصيرة بتكوينات مثالية مختلفة.
ملخص الخطوات لتحديد العدد الأمثل من العمال
1. تحديد موارد الأجهزة: ابدأ بعدد نوى وحدة المعالجة المركزية والذاكرة المتاحة.
2. تحليل نوع عبء العمل: تصنيف على أنه مرتبط بوحدة المعالجة المركزية ، I/O-Bound ، أو مختلط.
3. ابدأ بخط الأساس: عمومًا ، عامل واحد لكل وحدة المعالجة المركزية.
4. ضبط المواضيع لكل عامل: خاصة بالنسبة للعمال المتعددين ، قم بضبط المواضيع لتشبع وحدة المعالجة المركزية.
5. قياس وشاشة: مقاييس الأداء القياسية مثل الإنتاجية والكمون ووحدة المعالجة المركزية والذاكرة استخدام في إعدادات مختلفة.
6. النظر في حدود النظام: تحقق من حدود نظام التشغيل والحدود للتطبيقات والعمليات.
7. حساب طلبات متعددة: تخصيص العمال بناءً على مشاركة الموارد.
8. تكرار ضبط: ضبط بناءً على الاختناقات المرصودة ، بالهدف من عدم وجود جوع أساسي في وحدة المعالجة المركزية أو تبديل السياق المفرط.
9. النظر في العوامل الخاصة بالنظام: مثل جمع القمامة ، ونموذج التزامن ، وقيود وقت التشغيل.
10. خطة للنمو: اترك غرفة التوسع مع زيادة الحمل.
من خلال الجمع بين معرفة الأجهزة ، وتحليل عبء العمل ، والمراقبة ، والضبط التكراري ، يمكن تحديد عدد عمليات العمال الأمثل لإعداد محدد.
شرح مفصل لكل عامل
CPU CORT و UTILISTION
توفر وحدات المعالجة المركزية المتعددة النواة الحديثة عدة وحدات للمعالجة. يمكن لكل نواة تشغيل عملية عامل على موضوعها الخاص ، مما يزيد من الإنتاجية. ومع ذلك ، فإن إضافة المزيد من العمال من النوى قد يؤدي إلى الخلاف والنفقات العامة. تضمن المباراة المثلى أن كل نواة لديها عامل مخصص ، مما يقلل من التأخير في تبديل السياق وزيادة استخدام ذاكرة التخزين المؤقت للوحدة المعالجة المركزية إلى الحد الأقصى. يتيح Multithreading داخل كل عملية عامل التعامل مع مهام متعددة بشكل متزامن ، ولكن يجب موازنة لتجنب النفقات العامة.
قيود الذاكرة
تستهلك كل عملية عامل ذاكرة النظام ، بما في ذلك الذاكرة الخاصة والموارد المشتركة. يعني RAM غير الكافي تبديل أو ترحيل متكرر على القرص ، والذي يعوق الأداء بشدة. من الضروري مراقبة بصمة الذاكرة لكل عامل تحت الحمل وضمان إبقاء الاستهلاك الكلي داخل ذاكرة الوصول العشوائي المادية. هذا يرشد الحد الأعلى لأرقام عملية العمال.
طبيعة عبء عمل التطبيق
تدفع المهام المرتبطة بوحدة المعالجة المركزية وحدة المعالجة المركزية بشكل مستمر ، لذلك يجب ألا تتجاوز أرقام العمال النوى. تتطلب المهام المرتبطة بالإدخال/الإخراج العمال انتظار الموارد الخارجية (القرص ، الشبكة) ، لذلك يتيح وجود العمال الزائدون استخدامًا أفضل لأن بعض العمال ينتظرون أثناء تشغيل الآخرين. بالنسبة لأعباء العمل المختلطة ، فإن النسبة التقريبية بناءً على الوقت الذي يقضيه الانتظار مقابل عدد أدلة الحوسبة.
نماذج الخيوط والتزامن
قد يفرخ العمال المواضيع للتعامل مع المهام المتعددة في وقت واحد. يؤثر عدد المواضيع لكل عامل على استخدام وحدة المعالجة المركزية واستجابةها. الكثير من المواضيع تسبب النفقات العامة ؛ قليل جدا من تقليل التزامن. يعتمد تحديد التوازن الصحيح على حجم المهمة ، وأوقات الحظر ، وميزات وقت التشغيل مثل جدولة مؤشرات الترابط والنفقات العامة المزامنة.
حدود النظام وحدود التطبيق
حدود نظام التشغيل ، مثل عمليات MAX أو مؤشرات الترابط لكل مستخدم ، وتكوينات التطبيق (خوادم الويب ، قواعد البيانات ، أوقات تشغيل لغة البرمجة) تقيد عدد العمال. فهم هذه المفتاح لتجنب استنفاد الموارد ، مما يؤدي إلى حوادث أو تدهور الأداء.
أدوات المراقبة والمعايير
إن استخدام أدوات مثل وحدة المعالجة المركزية وخزانات الذاكرة ، وشاشات الكمون ، وأنظمة التسجيل يساعد على قياس تأثير عدد العمال المتغيرون. يكشف مؤشر التكوينات المختلفة مع أعباء العمل النموذجية عن الإعداد الأمثل لأفضل إنتاجية واستجابة.
بيئات التطبيقات المتعددة
في البيئات المشتركة ، يتيح تقسيم نوى وحدة المعالجة المركزية والذاكرة بين التطبيقات تخصيص الموارد العادلة. ثم يتناسب رقم عامل التطبيق مع الموارد الممنوحة أو مستوى الأولوية.
أمثلة في العالم الحقيقي
على سبيل المثال ، غالبًا ما يستخدم خادم ويب PUMA Ruby عاملًا واحدًا لكل وحدة معالجة المعالجة المركزية ، وضبط مؤشرات الترابط لتحسين الإنتاجية. في بيئات الحاويات مع وحدات المعالجة المركزية الافتراضية ، قد تساعد تجربة المزيد من العمال من وحدات المعالجة المركزية ولكن تتطلب المزيد من الذاكرة. وبالمثل ، تقوم خوادم قاعدة البيانات بتكوين مؤشرات ترابط العمال MAX استنادًا إلى وحدة المعالجة المركزية والذاكرة وعبلة العمل لمنع الاستعلامات المتوقفة.
يتطلب تحديد العدد الأمثل لعمليات العمال لإعداد معين موازنة هذه العوامل العديدة من خلال التقييم والقياس والضبط الخاص بالنظام لتحقيق أفضل أداء لبيئة عبء العمل وبيئة الأجهزة. يضمن هذا النهج التكراري القائم على البيانات كفاءة الموارد واستجابةها.