सीपीयू के साथ लिनक्स में एक प्रक्रिया के सीपीयू उपयोग को कैसे सीमित करें

जब आप लिनक्स सिस्टम पर काम कर रहे होते हैं, तो बैकग्राउंड में कई प्रोसेस चलती हैं। ये प्रक्रियाएँ CPU उपयोग और समय के रूप में सिस्टम संसाधन लेती हैं।

जबकि ज्यादातर स्थितियों में, ओएस इन प्रक्रियाओं को स्वचालित रूप से प्रबंधित करता है, कभी-कभी संसाधन-गहन प्रक्रिया भारी प्रसंस्करण या खराब विकास के कारण सीपीयू का उपयोग कर सकती है। इसका उत्तर आमतौर पर प्रक्रिया को सीधे मारना या इसके CPU उपयोग को एक निश्चित सीमा तक सीमित करना है।

सौभाग्य से लिनक्स पर, आप cpulimit नामक कमांड-लाइन उपयोगिता का उपयोग करके एक प्रक्रिया के CPU उपयोग को सीमित कर सकते हैं।

उच्च CPU उपयोग के साथ एक प्रक्रिया की पहचान कैसे करें

इससे पहले कि आप किसी प्रक्रिया द्वारा उपयोग किए जा सकने वाले सिस्टम संसाधनों के प्रतिशत को सीमित कर सकें, आपको उस विशेष प्रक्रिया की प्रक्रिया आईडी ढूंढनी होगी। एक प्रक्रिया आईडी (या पीआईडी) एक अद्वितीय संख्या है जिसका उपयोग आपका सिस्टम किसी प्रक्रिया की पहचान करने के लिए करता है।

लिनक्स पर, प्रक्रियाओं से संबंधित विस्तृत जानकारी प्राप्त करने के कई तरीके हैं। आप अपने सिस्टम पर वर्तमान में चल रही प्रक्रियाओं की सूची प्राप्त करने के लिए शीर्ष कमांड का उपयोग कर सकते हैं।

 top

आउटपुट:

%CPU कॉलम CPU का प्रतिशत दिखाता है जो विशेष प्रक्रिया उपयोग कर रही है। यदि आपका कंप्यूटर उससे अधिक डेटा संसाधित करने का प्रयास कर रहा है, तो कुछ विशिष्ट प्रक्रिया में 100% CPU उपयोग होगा। यह देखने के लिए तालिका की जाँच करें कि क्या उच्च CPU उपयोग के साथ कोई प्रक्रिया है।

एक बार जब आपको उच्च CPU उपयोग के साथ प्रक्रिया मिल जाए, तो इसके PID को नोट कर लें। प्रक्रिया के उपयोग को सीमित करने के लिए प्रक्रिया आईडी महत्वपूर्ण है।

CPU उपयोग को cpulimit के साथ सीमित करें

जैसा कि ऊपर उल्लेख किया गया है, cpulimit एक कमांड-लाइन उपयोगिता है जो आपके कंप्यूटर पर एक विशिष्ट प्रक्रिया द्वारा उपयोग किए जाने वाले सिस्टम संसाधनों की मात्रा की सीमा जोड़ती है। चूंकि अधिकांश लिनक्स वितरण cpulimit प्रीइंस्टॉल्ड के साथ शिप नहीं होते हैं, इसलिए आपको इसे मैन्युअल रूप से इंस्टॉल करना होगा।

आप निम्न प्रकार से उबंटू और अन्य डेबियन-आधारित वितरण पर पैकेज स्थापित कर सकते हैं:

 sudo apt install cpulimit

मंज़रो लिनक्स जैसे आर्क-आधारित वितरण पर:

 sudo pacman -S cpulimit

Cpulimit EPEL (एंटरप्राइज़ लिनक्स के लिए अतिरिक्त पैकेज) रिपॉजिटरी पर उपलब्ध है। इसलिए, इसे CentOS और RHEL वितरण पर स्थापित करने के लिए, आपको पहले EPEL रिपॉजिटरी को सक्षम करना होगा।

 yum install epel-release
yum install cpulimit

मूल सिंटैक्स

cpulimit का उपयोग करने के लिए, आपको कमांड के साथ निम्नलिखित तीन तर्कों में से एक को पास करना होगा:

  1. -p या –pid : एक प्रक्रिया की प्रक्रिया आईडी
  2. -e या –exe : निष्पादन योग्य फ़ाइल का नाम
  3. -पी या –पथ : निष्पादन योग्य फ़ाइल का पूर्ण पथ path

कमांड का मूल सिंटैक्स है:

 cpulimit -p pid
cpulimit -e executablename
cpulimit -p /path-to-executable

एक प्रक्रिया के CPU उपयोग को सीमित करें

आप cpulimit उपयोगिता के –limit या -l ध्वज का उपयोग उन संसाधनों की सीमा जोड़ने के लिए कर सकते हैं जिनका एक प्रक्रिया उपयोग कर सकती है। केवल 50% CPU का उपयोग करने के लिए PID 81550 के साथ एक प्रक्रिया को बाध्य करने के लिए:

 sudo cpulimit -p 81550 --limit 50

यहां, cpulimit प्रक्रिया के CPU उपयोग को तब तक प्रतिबंधित करेगा जब तक यह चल रहा है। यदि आप cpulimit के निष्पादन को रोकते हैं, तो उस विशिष्ट प्रक्रिया का CPU उपयोग वापस सामान्य हो जाएगा।

इस समस्या को रोकने के लिए एक बढ़िया उपाय cpulimit को बैकग्राउंड में चलाना है। आप कमांड को बैकग्राउंड में भेजने के लिए –background या -b फ्लैग को कमांड के साथ जोड़ सकते हैं।

 sudo cpulimit -p 81550 --limit 50 --background

यदि –बैकग्राउंड विकल्प काम नहीं करता है, तो आप इसे बैकग्राउंड में भेजने के लिए कमांड के बाद एम्परसेंड ( & ) जोड़ सकते हैं।

 sudo cpulimit -p 81550 --limit 50 &

उपरोक्त आदेश काम करता है या नहीं यह जांचने के लिए शीर्ष आदेश का उपयोग करें।

जैसा कि आपने देखा होगा, dd कमांड का CPU उपयोग घटकर 48.8% हो गया।

इसकी पीआईडी ​​का उपयोग करके एक प्रक्रिया को मारें

CPU उपयोग को सीमित करने के बजाय, आप –kill ध्वज के साथ इसे मार कर प्रक्रिया को पूरी तरह से बंद कर सकते हैं।

 sudo cpulimit -p 81550 --limit 50 --kill

Linux में होशियार प्रक्रिया प्रबंधन

यदि आप अक्सर उच्च CPU उपयोग के साथ प्रक्रियाओं से टकराते हैं तो Cpulimit एक महान उपयोगिता है। गनोम उपयोक्ता जो कमांड लाइन के साथ सहज नहीं हैं, वे अपने सिस्टम पर प्रक्रियाओं को प्रबंधित करने के लिए सिस्टम मॉनिटर का भी उपयोग कर सकते हैं।

सीपीयूलिमिट जैसे टूल का उपयोग करने के अलावा, आप किसी विशिष्ट प्रक्रिया को कम संसाधन प्रदान करने के लिए लिनक्स पर प्राथमिकता भी कम कर सकते हैं। जब लिनक्स में प्रक्रिया प्राथमिकता को प्रबंधित करने की बात आती है तो अच्छा और त्याग आदेश एक जीवनरक्षक होता है।