मेरे पास rsync cron जॉब है जो सर्वर लोड को बढ़ा रहा है और मॉनिटर अलर्ट ट्रिगर कर रहा है। अगर मैं नौकरी को उच्च स्तर के साथ चलाने के लिए सेट करता हूं, तो क्या यह सिस्टम लोड मानों पर प्रभावी रूप से प्रभाव को कम करेगा?
मेरे पास rsync cron जॉब है जो सर्वर लोड को बढ़ा रहा है और मॉनिटर अलर्ट ट्रिगर कर रहा है। अगर मैं नौकरी को उच्च स्तर के साथ चलाने के लिए सेट करता हूं, तो क्या यह सिस्टम लोड मानों पर प्रभावी रूप से प्रभाव को कम करेगा?
जवाबों:
अच्छा मूल्य बदलने से सिस्टम लोड सीधे कम नहीं होगा। हालांकि इसका उपयोग शेष प्रक्रियाओं के लिए उपलब्ध अधिक संसाधनों को छोड़ने के लिए किया जा सकता है, जो मुझे संदेह है कि आप वास्तव में क्या चाहते हैं।
से http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/
कर्नेल तय करता है कि अच्छे मूल्य के आधार पर प्रक्रिया के लिए कितना प्रोसेसर समय की आवश्यकता है। संभावित अच्छा मूल्य सीमा है: -20 से 20. एक प्रक्रिया जिसमें -20 का अच्छा मूल्य है, बहुत उच्च प्राथमिकता है। 20 की अच्छी वैल्यू वाली प्रक्रिया बहुत कम प्राथमिकता है।
तो हाँ, आप क्रोन जॉब को अन्य प्रक्रियाओं की तुलना में उच्च स्तर पर चलाना चाहते हैं यदि आप यह सुनिश्चित करना चाहते हैं कि अन्य प्रक्रियाओं को प्राथमिकता मिले।
ऐसा करने के लिए आप चाहते हैं कि आपकी क्रोन स्क्रिप्ट को इस तरह निष्पादित किया जाए:
/bin/nice -n 10 /path/to/cron-script
यह 10 से बढ़ी हुई शुद्धता पर क्रोन स्क्रिप्ट को चलाएगा। आप संभवतः शेष प्रक्रियाओं और स्क्रिप्ट के निष्पादन समय के बीच एक अच्छा (दंडित इरादा नहीं) संतुलन खोजने के लिए थोड़ा परीक्षण करना चाहते हैं।
यह भी देखें कि अच्छा काम कैसे होता है? और http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/ अधिक जानकारी के लिए।
एक प्रक्रिया के अच्छे स्तर को बदलने से सिस्टम लोड मूल्य को प्रभावित करने की संभावना नहीं है। सिस्टम लोड मान रन क्यू की औसत लंबाई है , जो मूल रूप से सीपीयू का उपयोग करने की इच्छुक प्रक्रियाओं की संख्या है।
यदि आप CPU-बाध्य प्रक्रिया चला रहे हैं (rsync नहीं है, लेकिन उदाहरण के लिए), तो यह हमेशा CPU समय का उपयोग करना चाहेगा जब भी कुछ उपलब्ध हो। चूंकि यह हमेशा चलना चाहता है, यह सिस्टम लोड मान में 1.0 के लोड मान का योगदान देगा। इससे कोई फर्क नहीं पड़ता कि प्रक्रिया अच्छा स्तर क्या है, क्योंकि रन कतार में प्रक्रियाओं की क्रम से रन कतार की औसत लंबाई अप्रभावित है ।
आप सिस्टम लोड / CPU समय पर अपने प्रभाव के प्रभाव को कम करने के 3 तरीकों पर विचार कर सकते हैं:
nice
कार्य की प्राथमिकता को मैन्युअल रूप से कम करने के लिए कमांड का उपयोग करें ।cpulimit
बार-बार प्रक्रिया को रोकने के लिए कमांड का उपयोग करें ताकि यह एक निश्चित सीमा से अधिक न हो।built-in control groups
, एक तंत्र जो अनुसूचक को प्रक्रिया के लिए उपलब्ध संसाधनों की मात्रा को सीमित करने के लिए कहता है।साधन