يجب فتح عدد من العمليات؟

كيفية ضبط عدد العمليات

يتم تحديد عدد العمليات بواسطة خاصية "العد" (لا يدعم نظام ويندوز ضبط عدد العمليات)، كما في الكود أدناه

use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';

$http_worker = new Worker("http://0.0.0.0:2345");

// ## يشغل 4 عمليات لتقديم الخدمة للعامة ##
$http_worker->count = 4;

...

يجب مراعاة الظروف التالية عند ضبط عدد العمليات

  1. عدد أنوية المعالج
  2. حجم الذاكرة
  3. ميل العمل إلى كثافة IO أو كثافة العمليات المركزية CPU

مبادئ ضبط عدد العمليات

  1. يجب أن يكون مجموع استهلاك الذاكرة لكل عملية أقل من الذاكرة الإجمالية (عمومًا، يستهلك كل عملية عمل تقريبًا 40 ميجابايت من الذاكرة)
  2. إذا كان العمل متكثفًا في الIO، وهو يشتمل على بعض IO "المانع"، مثل الوصول العام إلى قواعد البيانات مثل Mysql وRedis وغيرها، يمكن زيادة عدد العمليات قليلاً، مثل ثلاث مرات أو حتى ثماني مرات عدد أنوية المعالج. وإذا كان العمل يشمل انتظارات من النوع "المانع" بشكل كبير، يمكن زيادة عدد العمليات بشكل مناسب إلى ثماني مرات عدد أنوية المعالج أو حتى أكثر. لاحظ أنه تستهلك IO غير المانع للعمليات المتكثفة في وحدة المعالجة المركزية CPU بدلا من كثافة IO.
  3. إذا كان العمل متكثفًا في الوحدة المركزية CPU، وهو عمل يتسم بعدم وجود مصاريف "المانع" في ال IO ومثل استخدام IO غير المتزامن لقراءة المصادر الشبكية، عدم تكلفة العمل في وحدة المعالجة المركزية ال CPU، فيجب ضبط عدد العمليات على أن يكون مساويًا لعدد أنوية المعالج.

قيم المرجع الخاصة بضبط عدد العمليات

إذا أكان العمل يميل إلى كثافة IO، يمكن ضبط عدد العمليات وفقًا لدرجة كثافة IO، على سبيل المثال من ثلاثة إلى ثمانية مرات عدد أنوية المعالج.

إذا أكان العمل يميل إلى كثافة العمليات المركزية CPU، فيمكن ضبط عدد العمليات على أن يكون مساويًا لعدد أنوية المعالج.

ملحوظة

IO Workerman ذاتي هي غير مانعة؛ على سبيل المثال، الوظيفة Connection->send وما شابه ذلك هي عمليات غير مانعة؛ والعمل هو عمل كثافة المعالجة المركزية CPU. إذا كان الشخص لا يعرف إلى أي نوع يميل عمله، يمكن ضبط عدد العمليات بثلاثة مرات عدد أنوية المعالج، على سبيل المثال.
كما ينبغي ملاحظة أن العمل هو ليس بالضرورة أفضل في حال كانت به عدد كبير من العمليات؛ إذ يجلب ذلك إزيادة أعباء الانتقال بين العمليات وله تأثير على الأداء.