Computer >> कंप्यूटर >  >> प्रणाली >> Linux

लिनक्स में टास्कसेट के साथ सीपीयू कोर कैसे असाइन करें

लिनक्स में टास्कसेट के साथ सीपीयू कोर कैसे असाइन करें

मल्टी-कोर प्रोसेसिंग में लाभ और कमियां हो सकती हैं, और कभी-कभी आपको सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए प्रोग्राम (उर्फ "सीपीयू एफ़िनिटी") को सीपीयू कोर मैन्युअल रूप से असाइन करने की आवश्यकता होती है। लिनक्स के तहत, प्राथमिक उपकरण टास्कसेट है। यह संभावित रूप से डरावना लगता है, लेकिन प्रक्रिया को आसान बनाने के लिए हम इसे आसान चरणों में विभाजित करेंगे।

टास्कसेट की मूल बातें

टास्कसेट का उपयोग दो भागों में विभाजित किया जा सकता है:लॉन्च किए जाने वाले कार्यक्रमों के साथ सीपीयू आत्मीयता और पहले से चल रहे कार्यक्रमों के साथ। प्रोग्राम लॉन्च करना दोनों में से आसान है, इसलिए हम वहीं से शुरुआत करेंगे। लॉन्च कमांड इस तरह दिखता है:

taskset -c cpu-core-number(s) application

सीपीयू कोर की संख्या दर्ज करने से पहले जिसे आप असाइन करना चाहते हैं, यह न भूलें कि यूनिक्स नंबरिंग योजना आम तौर पर 0 से शुरू होती है, इसलिए आपका पहला कोर 0 होगा, आपका दूसरा कोर 1 होगा, और इसी तरह। इस प्रकार, एक डुअल-कोर मशीन में कोर 0 और 1 होंगे, और एक क्वाड-कोर मशीन में कोर 0, 1, 2 और 3 होंगे।

मान लीजिए कि आप दोहरे कोर सिस्टम पर ऑडेसिटी चलाना चाहते हैं, और आप इसे अपने दूसरे कोर पर चलाना चाहते हैं। वह आदेश होगा:

taskset -c 1 audacity

एकाधिक कोर का उपयोग करना

हमारी मशीनों में से एक पर, वीडियो स्ट्रीमिंग करते समय क्रोम कभी-कभी फ्रेम छोड़ देता है लेकिन दो कोर को असाइन किए जाने पर स्वयं व्यवहार करेगा। यदि आप क्वाड-कोर सिस्टम पर एक ही चीज़ आज़माना चाहते हैं और क्रोम को कोर तीन और चार में असाइन करना चाहते हैं, तो कमांड होगा:

taskset -c 2,3 google-chrome

आपको अनुक्रमिक कोर के लिए सीपीयू एफ़िनिटी असाइन करने की ज़रूरत नहीं है - आप किसी भी कोर को यादृच्छिक रूप से चुन सकते हैं। मान लें कि आपके पास छह-कोर मशीन है और आप दो और छह कोर पर क्रोम का उपयोग करना चाहते हैं। आप कमांड दर्ज करेंगे:

taskset -c 1,5 google-chrome

आप किसी एप्लिकेशन को कई कोर पर फैलाने के लिए डैश का उपयोग भी कर सकते हैं। उदाहरण के लिए, कई पुराने प्रोग्राम या सिस्टम फ़ंक्शन आपके पहले कोर पर डिफ़ॉल्ट होंगे। क्या होगा यदि आप अपने अन्य सभी कोर में एक बड़े एप्लिकेशन को फैलाते हुए पहले कोर को यथासंभव मुक्त छोड़ना चाहते हैं?

मान लें कि आपके पास आठ-कोर सिस्टम है और आप स्टीम को दूसरे कोर से आठवें तक चलाना चाहते हैं। वह आदेश होगा:

taskset -c 1-7 steam

पहले ही लॉन्च हो चुके प्रोग्राम के लिए एफ़िनिटी बदलना

टास्कसेट केवल एप्लिकेशन लॉन्च करने तक सीमित नहीं है। आप पहले से चल रहे प्रोग्राम के लिए CPU एफ़िनिटी भी बदल सकते हैं। हालांकि, इससे पहले कि आप किसी एप्लिकेशन के एफ़िनिटी को बदल सकें, आपको पहले इसकी प्रक्रिया आईडी (या संक्षेप में पीआईडी) को जानना होगा।

अपने एप्लिकेशन के PID का पता लगाने के लिए, आप अपने डेस्कटॉप के सिस्टम मॉनिटर का उपयोग करने का प्रयास कर सकते हैं, लेकिन सबसे तेज़ तरीका केवल top का उपयोग करना है . अप्रत्याशित रूप से, यह कमांड का उपयोग करता है:

top

सभी चल रहे आदेशों के नाम स्क्रीन के दाईं ओर हैं। संबंधित प्रक्रिया आईडी बाईं ओर हैं।

लिनक्स में टास्कसेट के साथ सीपीयू कोर कैसे असाइन करें

अपना पीआईडी ​​​​लिखें क्योंकि आप इसे एक पल में उपयोग करेंगे। इस उदाहरण के लिए, हम वीएलसी का उपयोग करेंगे, जो छह कोर वाले पुराने पीसी पर हाई-डेफिनिशन मैट्रोस्का वीडियो चलाने के बीच में है। वीएलसी से सर्वश्रेष्ठ प्रदर्शन को निचोड़ने के लिए हम विभिन्न सीपीयू एफिनिटीज के साथ प्रयोग कर रहे हैं।

किसी मौजूदा प्रक्रिया की समानता को बदलने के लिए, सिंटैक्स इस तरह दिखता है:

taskset -cp core-numbers PID

यदि आप ऊपर हमारा स्क्रीनशॉट देख सकते हैं, तो वीएलसी की प्रोसेस आईडी 20485 है। हम चौथे, पांचवें और छठे कोर पर वीएलसी चलाने की कोशिश करने जा रहे हैं, जो यूनिक्स में 3-5 होगी। तो उसके बाद, कमांड होगी:

taskset -cp 3-5 20485

लेकिन क्या होगा यदि आप मौजूदा आत्मीयता को बदलने से पहले उसकी जांच करना चाहते हैं? उसके लिए, कोई कोर नंबर दर्ज न करें, और टास्कसेट आपको बताएगा कि एफ़िनिटी कैसे असाइन की जाती है। इसलिए यदि हम अंतिम कमांड को इसमें बदलते हैं:

taskset -cp 20485

यह हमें दिखाता है कि वीएलसी सभी कोर में फैला हुआ है।

लिनक्स में टास्कसेट के साथ सीपीयू कोर कैसे असाइन करें

आइए एक अलग कार्यक्रम के साथ फिर से कोशिश करें। मान लीजिए कि हम इसके बजाय SMPlayer के साथ एक बड़ा Matroska चलाते हैं, और SMPlayer पहले ही लॉन्च किया जा चुका है। शीर्ष का कहना है कि पीआईडी ​​​​16058 है।

लिनक्स में टास्कसेट के साथ सीपीयू कोर कैसे असाइन करें

लेकिन पहले हम इसकी मौजूदा आत्मीयता को जानना चाहते हैं। -cp . के साथ कमांड का उपयोग करना स्विच करें लेकिन कोई कोर नंबर नहीं है, हम देख सकते हैं कि वर्तमान में एफ़िनिटी सभी कोर में फैली हुई है।

लिनक्स में टास्कसेट के साथ सीपीयू कोर कैसे असाइन करें

अब हम SMPlayer को उन्हीं तीन कोर में फैलाने का प्रयास कर सकते हैं जैसे VLC कमांड के साथ प्रयोग करता है:

taskset -cp 3-5 16058

यह आसान है, है ना? यदि आप अपने पीसी को बेंचमार्क करना चाहते हैं, तो अपने सीपीयू को तनाव-परीक्षण करने के लिए 8 उपयोगी टूल पर हमारी मार्गदर्शिका देखें।


  1. NTP सर्वर के साथ Linux समय को कैसे सिंक करें

    कंप्यूटर घड़ियां सही नहीं हैं। कुछ दिनों, हफ्तों या महीनों को देखते हुए, वे बहाव करते हैं और वास्तविक समय दिखाना बंद कर देते हैं। सीधे शब्दों में कहें, उनके बहाव के बाद, वे इसे 10:30 दिखा सकते हैं, जबकि वास्तव में यह 10:33 है। पुराने कंप्यूटरों पर समय-समय पर कंप्यूटर घड़ी को मैन्युअल रूप से समायोजित

  1. Microsoft OneDrive को Linux के साथ कैसे सिंक करें

    कभी-कभी हाल ही में उचित उत्पादों का उपयोग करना आवश्यक हो सकता है। ओपन सोर्स के प्रति उत्साही लोग क्लाउड-आधारित स्टोरेज सुविधा को पसंद करेंगे, लेकिन तथ्य यह है कि Google, Amazon, Dropbox और Microsoft जैसी कंपनियों ने क्लाउड स्टोरेज मार्केट पर कब्जा कर लिया है। वे विश्वसनीय उत्पादों को मुफ्त में पेश क

  1. सिनेबेंच के साथ अपने सीपीयू को बेंचमार्क कैसे करें

    यदि आपने अभी-अभी एक शक्तिशाली नया CPU लिया है, जैसे कि Ryzen 7 परिवार में से एक, जैसे कि 5800X या 5900X, तो आप भाग्यशाली हैं! अपने नए सीपीयू को वास्तव में अपने पेस के माध्यम से रखने का सबसे अच्छा तरीका इसे बेंचमार्क करना है। ऐसे कई उपकरण हैं जिनका आप उपयोग कर सकते हैं, लेकिन सिनेबेंच अधिकांश उत्साही