मैं किसी विशेष उपयोगकर्ता या प्रक्रिया के लिए RAM के उपयोग को कैसे प्रतिबंधित कर सकता हूं?


8

मैं एक पृष्ठभूमि सेवा का उपयोग कर रहा हूं जो समय-समय पर स्मृति को लीक करती है। Alt+ SysRq REISUB[ 1 ] के उपयोग को रोकने के लिए , मैं एक प्रक्रिया या एक सिस्टम उपयोगकर्ता के लिए RAM उपयोग को प्रतिबंधित करना चाहूंगा।

मैं वास्तव में कहना चाहूंगा: उपयोगकर्ता x अधिकतम 1 जीबी की रैम का उपयोग कर सकता है।

क्या यह संभव है? क्या मुझे इसके लिए किसी तरह की वर्चुअल मशीन की जरूरत है? मैं उबंटू का उपयोग कर रहा हूँ 9.10।

जवाबों:


10

ulimit आपका मित्र है -म झंडे की जाँच करें। मुझे लगता है कि आप अपनी प्रक्रिया शुरू करने से पहले इसे निर्धारित करते हैं और यह तब से (वर्तमान शेल में) लागू होता है।


धन्यवाद, अच्छा संकेत! जैसा कि मैं समझता हूं कि ulimit, यह सभी उपयोगकर्ताओं की स्मृति / प्रक्रिया / जो भी खपत है , को सीमित करता है । मैं इसे केवल एक उपयोगकर्ता / प्रक्रिया और उपप्रोसेस तक सीमित करना चाहता हूं।
21

1
ulimit एक शेल कमांड है, और केवल ulimit निष्पादित होने के बाद उसी शेल से शुरू होने वाली प्रक्रियाओं को प्रभावित करता है। आप एक शेल स्क्रिप्ट में प्रक्रिया को एक ulimit कमांड के साथ स्टार्टअप करते हैं, ताकि यह उस प्रक्रिया को प्रभावित करे।
कीथबी

4

शेल कमांड के अलावा ulimit(bash के लिए) या limit(csh के लिए), आप ulimit()फ़ंक्शन के साथ अपने कोड के अंदर से इसे नियंत्रित कर सकते हैं ।


1
अप्रचलित मैनपेज : linux.die.net/man/1/ulimit (शेल कमांड) और linux.die.net/man/3/ulimit (C फ़ंक्शन)।
Stephan202
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.