কতগুলি প্রক্রিয়া চালু করা উচিত

প্রক্রিয়ার সংখ্যা কিভাবে সেট করবেন

প্রক্রিয়ার সংখ্যা count প্রপার্টি দ্বারা নির্ধারিত হয় (উইন্ডোজ সিস্টেমে প্রক্রিয়ার সংখ্যা সেট করা সমর্থিত নয়), যেমন নিচের কোডটি

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

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

// ## ৪টি প্রক্রিয়া শুরু করে পরিষেবা প্রদান ##
$http_worker->count = 4;

...

প্রক্রিয়ার সংখ্যা সেট করার সময় নিচের শর্তগুলো বিবেচনা করতে হবে

1। CPU কোর সংখ্যা

2। মেমরি আকার

3। ব্যবসায় আইও-নির্ভর অথবা CPU-নির্ভর কি না

প্রক্রিয়ার সংখ্যা সেট করার নীতি

1। প্রতি প্রক্রিয়া দ্বারা ব্যবহৃত মেমরির যোগফল মোট মেমরির চেয়ে কম হওয়া উচিত (সাধারণভাবেই প্রতি ব্যবসায়িক প্রক্রিয়া প্রায় 40M মেমরি ব্যবহার করে)

2। যদি আইও-নির্ভর হয়, অর্থাৎ ব্যবসায়ে উল্লেখযোগ্য কিছু ব্লকিং আইও থাকে, যেমন সাধারণভাবে Mysql, Redis ইত্যাদি স্টোরেজ অ্যাক্সেস ব্লকিং অ্যাক্সেস হয়, então, প্রক্রিয়ার সংখ্যা বেশি করা যেতে পারে, যেমন CPU কোর সংখ্যার ৩ গুণ। যদি ব্যবসায়ের মধ্যে ব্লকিং অপেক্ষার পরিমাণ খুব বেশি হয়, তবে আবার প্রক্রিয়ার সংখ্যা বাড়ানো যেতে পারে, যেমন CPU কোর সংখ্যার ৮ গুণ বা তারও বেশি। মনে রাখবেন যে নন-ব্লকিং আইও CPU-নির্ভর, আইও-নির্ভর নয়।

3। যদি CPU-নির্ভর হয়, অর্থাৎ ব্যবসায়ে কোনো ব্লকিং আইও খরচ থাকে না, যেমন অ্যাসিঙ্ক্রোনাস আইও ব্যবহার করে নেটওয়ার্ক সম্পদ পড়া, প্রক্রিয়াগুলি ব্যবসায়িক কোড দ্বারা ব্লক করা হবে না, তাহলে প্রক্রিয়ার সংখ্যা CPU কোর সংখ্যার সমান সেট করা যেতে পারে

প্রক্রিয়ার সংখ্যা সেট করার প্রয়োজনীয় মান

যদি ব্যবসায়িক কোড আইও-নির্ভর হয়, তবে আইও-নির্ভরতার উপর ভিত্তি করে প্রক্রিয়ার সংখ্যা সেট করুন, যেমন CPU কোর সংখ্যার ৩-৮ গুণ।

যদি ব্যবসায়িক কোড CPU-নির্ভর হয়, তবে প্রক্রিয়ার সংখ্যা CPU কোর সংখ্যার সমান সেট করা যেতে পারে।

সতর্কতা

Workerman এর নিজস্ব আইও সবই নন-ব্লকিং, যেমন Connection->send ইত্যাদি সবই নন-ব্লকিং, CPU-নির্ভর অপারেশন। আপনি যদি জানেন না আপনার ব্যবসা কোন ধরনের দিকে ঝুঁকে, তবে প্রক্রিয়ার সংখ্যা প্রায় CPU কোর সংখ্যার ৩ গুণ সেট করতে পারেন।
অন্যদিকে, প্রক্রিয়ার সংখ্যা যত বেশি হবে তত ভাল নয়, খুব বেশি প্রক্রিয়া চালু করলে প্রক্রিয়া পরিবর্তনের খরচ বাড়বে, যা কর্মক্ষমতার উপর কিছু প্রভাব ফেলবে।