किसी दिए गए उपयोगकर्ता के लिए डिफ़ॉल्ट अच्छा मूल्य निर्धारित करें (limit.conf)


12

कोई मुझे बता सकते हैं कि कैसे डिफ़ॉल्ट का मान सेट करने nice(के रूप में द्वारा प्रदर्शित topएक उपयोगकर्ता की)? मैंने पाया है कि /etc/security/limits.conf वह स्थान है लेकिन अगर मैं या तो डालूँ:

username_of_a_guy  -  nice  19
username_of_a_guy  soft  nice  19
username_of_a_guy  hard  nice  19

यह काम नहीं करता है (जबकि यह सही होना चाहिए?)।

ध्यान दें कि मैंने तब से रिबूट किया है।

धन्यवाद बहुत ज्यादा किसी भी मदद के लिए अग्रिम। मैं डेबियन अस्थिर (uptodate) का उपयोग कर रहा हूं।

प्रसंग:

मेरे काम में, हमारे पास एक स्थानीय नेटवर्क है: हर किसी का अपना कंप्यूटर है और हर कोई किसी और की मशीन पर खाता बना सकता है यदि कोई पसंद करता है। अंगूठे का नियम बस इतना है कि यदि आप किसी और कंप्यूटर पर काम करते हैं, तो कृपया अपनी प्रक्रियाओं ( nice 19) को अच्छा करें ।

मैं किसी दिए गए उपयोगकर्ता के लिए डिफ़ॉल्ट अच्छा मान एक बार और सभी के लिए 19 पर सेट करना चाहूंगा।


कुछ हद तक संबंधित: unix.stackexchange.com/questions/209398/...
Kusalananda

जवाबों:


13

मेरा मानना ​​है कि सही प्रारूप है:

@users      -       priority        10
username    -       priority        19

यह उन सेटिंग्स का एक उदाहरण है जिसका मैं उत्पादन में उपयोग कर रहा हूं (स्पष्ट रूप से वास्तविक उपयोगकर्ताओं / समूहों के साथ)।

niceसेटिंग निर्धारित करने के लिए कम से कम अच्छा मूल्य (यानी अधिकतम प्राथमिकता) किसी को, नहीं उनके डिफ़ॉल्ट प्राथमिकता करने के लिए अपनी प्रक्रिया निर्धारित कर सकते हैं।


2
सबसे पहले, आपके उत्तर के लिए धन्यवाद (साथ ही, @mattdm धन्यवाद)। ऐसा लगता है कि यह विधि काम करती है। हालाँकि, मैं अभी भी "अच्छा" और "प्राथमिकता" के बीच के अंतर के बारे में उलझन में हूँ: दोनों को "शीर्ष" द्वारा प्रदर्शित किया जाता है, लेकिन अच्छा के लिए उद्धृत मूल्य वह है जिसे मुझे प्राथमिकता के लिए निर्धारित करना है। यह मुझे थोड़ा अजीब लगता है। इसके अलावा, क्या बड़ी प्राथमिकता (20 के बजाय 39 कहें) का मतलब एक कम महत्वपूर्ण प्रक्रिया है क्योंकि यह अच्छा करता है? धन्यवाद।
एलेक्स

4
शीर्ष में 'NI' अच्छी प्राथमिकता है जो सीमा priorityसेटिंग द्वारा निर्धारित की जाएगी । जब वे लॉग इन करते हैं तो यह उस उपयोगकर्ता / समूह के लिए किसी भी प्रक्रिया की डिफ़ॉल्ट प्राथमिकता होगी। आप इसे केवल -20 और 20 के बीच सेट कर सकते हैं। शीर्ष में 'पीआर' मान वास्तविक अनुसूचक प्राथमिकता है, जो कई द्वारा निर्धारित किया जाता है कर्नेल के शेड्यूलर द्वारा कारक।
jsbillings

1
इसके अलावा, हां, एक उच्च प्राथमिकता का मतलब है कि सीपीयू चक्र प्राप्त करने की संभावना कम है।
jsbillings

1
ठीक है, इस छूट के लिए बहुत बहुत धन्यवाद। BTW, मैंने अन्य तरीकों की कोशिश नहीं की है (शामिल andया cgroup) जो अन्य स्थितियों में मेरी तुलना में बेहतर हो सकते हैं (निरंतर जांच की आवश्यकता, या कई उपयोगकर्ताओं का प्रबंधन-जो मेरे मामले में बहुत अधिक है)।
एलेक्स

हम्म्म्म ... यह एक उपयोगकर्ता के लिए काम करता है लेकिन मेरे उबंटू मशीन पर दूसरा नहीं। अगर मैं बाहर काम कर सकता हूं तो मैं वापस आऊंगा। ;-)
केन शार्प

3

मैं पुष्टि कर सकता हूं कि यह मेरे सिस्टम पर भी काम नहीं करता है। डॉक्स "कर्नेल 2.6.11 और ऊपर" कहते हैं, और मैं कर्नेल 2.6.38-rc6 के साथ फेडोरा रॉहाइड पर हूं। मुझे आश्चर्य है कि अगर यह शेड्यूलर-निर्भर है, और पेश किए गए 2.6.23 CFQ ("पूरी तरह से उचित समयबद्धक") ​​के साथ काम नहीं करता है।

हालांकि, जो कुछ काम करेगा, वह असंभव-से-खोज-के-कारण-के-इसके-भयानक-नाम है and- ऑटो-अच्छा डेमॉन। Http://and.sourceforge.net/ देखें । यह फेडोरा से उपलब्ध है yum install and, लेकिन दुर्भाग्य से ईपीईएल में नहीं लगता है। और यह डेबियन में भी है apt-get install and:।

यदि आप एक आधुनिक वितरण का उपयोग कर रहे हैं, हालांकि, एक और भी बेहतर तरीका है। आप CPU शेयरों को सीमित करने के लिए कर्नेल-स्तर cgroup सेट करने के लिए libcgroup के टूल का उपयोग कर सकते हैं , और स्वचालित रूप से "वर्गीकृत" कर सकते हैं कि इस cgroup में उपयोगकर्ता की प्रक्रिया। इसके साथ, आप I / O को प्राथमिकता भी दे सकते हैं, और मेमोरी उपयोग को सीमित कर सकते हैं (डिस्क कैश के शेयर सहित)।


मैं इस बात से सहमत हूं कि अन्य लोगों को आपके कंप्यूटर पर सभी सीपीयू चक्रों को देखने से रोकने के लिए cgroups का उपयोग करना एक उत्कृष्ट तरीका है। अफसोस की बात यह है कि जिन सिस्टम को मैं सपोर्ट करता हूं (RHEL5) में वे कर्नेल नहीं होते जो इसे सपोर्ट करते हैं, इसलिए मुझे प्राथमिकता को एडजस्ट करने के साथ रहना होगा। एक बार जब हम आरएचईएल 6 को अपडेट करते हैं, मुझे यकीन है कि हमारे पास कुछ काफी जटिल cgroups सेटिंग्स होंगे।
jsbillings
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.