रेडिस स्वयं ऐसी गारंटी प्रदान नहीं करता है।
यदि आप 4 उदाहरण लॉन्च करते हैं, तो 4 अलग-अलग प्रक्रियाएं होंगी जिन्हें ऑपरेटिंग सिस्टम को 4 कोर पर निर्धारित करना होगा। सिस्टम के प्रदर्शन को अनुकूलित करने, यह लोड संतुलन करने के लिए ओएस पर निर्भर है।
अब, यदि आप वास्तव में प्रत्येक उदाहरण को एक विशिष्ट कोर में बांधना चाहते हैं, तो आधुनिक ओएस आमतौर पर एक विशिष्ट CPU कोर पर प्रक्रिया के निष्पादन को लागू करने के लिए टूल प्रदान करता है।
उदाहरण के लिए, लिनक्स पर, आप taskset और numactl आदेशों पर एक नज़र डाल सकते हैं।
प्रैक्टिस में, आपको इसके साथ सावधान रहना होगा, क्योंकि एक बार जब आप एक विशिष्ट कोर (सीपीयू मास्क सेट करना) पर रेडिस लॉन्च करते हैं, तो सभी थ्रेड और बाल प्रक्रियाएं इस सीपीयू मास्क से प्राप्त होंगी। तो जब रेडिस पृष्ठभूमि बचत ऑपरेशन को ट्रिगर करने का प्रयास करेगा, या पृष्ठभूमि एओएफ फिर से लिखने का प्रयास करेगा, तो यह रेडिस इंस्टेंस के प्रदर्शन को गंभीरता से प्रभावित करेगा। यह इस तथ्य के कारण है कि मुख्य रेडिस थ्रेड ने पृष्ठभूमि ऑपरेशन के साथ सीपीयू कोर साझा किया होगा (जो आमतौर पर सीपीयू उपभोग करने वाला होता है)।
यदि आप वास्तव में सीपीयू बाध्यकारी के साथ खेलना चाहते हैं (लेकिन क्या यह वास्तव में एक अच्छा विचार है?), आपको एन रेडिस उदाहरणों को एन + 1 सीपीयू कोर में बांधना होगा, पृष्ठभूमि संचालन के लिए एक कोर मुक्त रखना होगा, और सुनिश्चित करना होगा इन उदाहरणों के लिए एक ही समय में एक पृष्ठभूमि ऑपरेशन चलाया जा सकता है।
स्रोत
2012-08-15 11:02:37
एक और जवाब थोड़े विपरीत कहता है: http://stackoverflow.com/a/36813957/1469954। कौन सी सलाह लेना है? :) – SexyBeast
यह अन्य उत्तर CPU बाध्यकारी का भी संदर्भ नहीं देता है। वे विपरीत दृष्टिकोण के बारे में कैसे व्यक्त कर सकते हैं? –