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

लिनक्स में Taskset के साथ CPU कोर कैसे असाइन करें

लिनक्स में Taskset के साथ CPU कोर कैसे असाइन करें

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

Taskset मूल बातें

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

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

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

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

taskset -c 1 audacity

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

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

taskset -c 2,3 google-chrome

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

taskset -c 1,5 google-chrome

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

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

taskset -c 1-7 steam

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

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

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

top

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

लिनक्स में Taskset के साथ CPU कोर कैसे असाइन करें

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

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

taskset -cp core-numbers PID

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

taskset -cp 3-5 20485

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

taskset -cp 20485

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

लिनक्स में Taskset के साथ CPU कोर कैसे असाइन करें

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

लिनक्स में Taskset के साथ CPU कोर कैसे असाइन करें

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

लिनक्स में Taskset के साथ CPU कोर कैसे असाइन करें

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

taskset -cp 3-5 16058

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


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

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

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

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

  1. Cinebench से अपने CPU को बेंचमार्क कैसे करें Cinebench से अपने CPU को बेंचमार्क कैसे करें

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