कितने प्रोसेस चालू किए जाने चाहिए

प्रोसेस की संख्या कैसे सेट करें

प्रोसेस की संख्या count गुण द्वारा निर्धारित होती है (विंडोज़ सिस्टम प्रोसेस संख्या सेटिंग का समर्थन नहीं करता), उदाहरण के लिए नीचे दिया गया कोड

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. CPU कोर की संख्या

  2. मेमोरी का आकार

  3. व्यवसाय का झुकाव IO गहन या CPU गहन है

प्रोसेस संख्या सेट करने के सिद्धांत

  1. प्रत्येक प्रोसेस द्वारा उपयोग की जाने वाली मेमोरी की कुल मात्रा कुल मेमोरी से कम होनी चाहिए (सामान्यतः प्रत्येक व्यवसाय प्रोसेस लगभग 40M मेमोरी का उपयोग करता है)

  2. यदि यह IO गहन है, अर्थात् व्यवसाय में कुछ ब्लॉकिंग IO शामिल हैं, जैसे कि सामान्य MySQL, Redis आदि स्टोरेज का उपयोग करना जो ब्लॉकिंग एक्सेस हैं, प्रोसेस संख्या कुछ अधिक की जा सकती है, जैसे कि CPU कोर की संख्या के 3 गुना। यदि व्यवसाय में शामिल ब्लॉकिंग प्रतीक्षा बहुत अधिक है, तो प्रोसेस संख्या को बढ़ाया जा सकता है, जैसे कि CPU कोर की संख्या के 8 गुना या उससे अधिक। ध्यान दें कि नॉन-ब्लॉकिंग IO CPU गहन होता है, और IO गहन के अंतर्गत नहीं आता है।

  3. यदि यह CPU गहन है, अर्थात् व्यवसाय में कोई ब्लॉकिंग IO खर्च नहीं है, जैसे कि असिंक्रोनस IO का उपयोग करते समय नेटवर्क संसाधनों को पढ़ना, प्रोसेस को व्यवसाय कोड द्वारा बाधित नहीं किया जा सकता है, तो प्रोसेस संख्या को CPU कोर की संख्या के बराबर सेट किया जा सकता है।

प्रोसेस संख्या के लिए संदर्भ मान

यदि व्यवसाय कोड IO गहन की ओर झुका हुआ है, तो IO गहनता के स्तर के आधार पर प्रोसेस संख्या सेट करें, जैसे कि CPU कोर की संख्या के 3-8 गुना।

यदि व्यवसाय कोड CPU गहन की ओर झुका हुआ है, तो प्रोसेस संख्या को CPU कोर की संख्या के बराबर सेट किया जा सकता है।

ध्यान दें

Workerman का IO स्वयं नॉन-ब्लॉकिंग होता है, जैसे कि Connection->send आदि नॉन-ब्लॉकिंग होते हैं, जो CPU गहन संचालन के अंतर्गत आते हैं। यदि आप नहीं जानते कि आपका व्यवसाय किस प्रकार का है, तो प्रोसेस संख्या को CPU कोर की संख्या के लगभग 3 गुना पर सेट करें।
इसके अलावा, प्रोसेस संख्या जितनी अधिक होगी उतना अच्छा नहीं है, यदि प्रोसेस बहुत अधिक चालू किए जाते हैं, तो प्रोसेस स्विचिंग का खर्च बढ़ेगा, जो प्रदर्शन पर निश्चित प्रभाव डालता है।