8

हम अपने सीआई बिल्ड सिस्टम के लिए जेनकींस का उपयोग करते हैं। हम 'समवर्ती बिल्ड' का भी उपयोग करते हैं ताकि जेनकींस स्वतंत्र रूप से प्रत्येक बदलाव का निर्माण कर सकें। इसका मतलब है कि हमारे पास एक ही नौकरी के साथ-साथ चलने वाले 5 या 6 बिल्ड होते हैं। इसे समायोजित करने के लिए, हमारे पास 12 अधिकारियों के साथ प्रत्येक 4 गुलाम हैं।दासों को नियंत्रित करने के लिए जेनकिन्स का उपयोग लोड संतुलन व्यवहार को मैं कैसे संशोधित कर सकता हूं?

समस्या यह है कि जेनकींस वास्तव में अपने गुलामों के बीच 'संतुलन लोड नहीं' करता है। यह उसी दास पर नौकरी बनाने की कोशिश करता है जिसे पहले बनाया गया था (संभावित रूप से स्रोत नियंत्रण से समन्वयित समय को कम करने के लिए)। यह एक समस्या है क्योंकि जेनकिंस एक ही दास (या 2 दासों के बीच अधिक संभावना) पर हमारे निर्माण के सभी 6 उदाहरण बनाएंगे। एक बिल्ड मशीन नीचे गिर जाती है और बहुत धीमी गति से चलती है जबकि बाकी के लोग निष्क्रिय रहते हैं।

क्या कोई प्लगइन या कुछ है जो लोड संतुलन व्यवहार को बदलता है जेनकींस अपने दासों को नियंत्रित करने के लिए उपयोग करता है?

उत्तर

1

आपको लगता है कि यह स्वचालित रूप से करता है एक प्लगइन नहीं मिल रहा है, तो यहां आप क्या कर सकते की एक विचार है:

  • स्थापित Node Label Parameter plugin
  • अपने काम करने के लिए दास जोड़े पैरामीटर
  • प्रतिबंधित नौकरियों के लिए ${SLAVE}
  • एक ट्रिगर जॉब जोड़ें जो निम्न कार्य करेगा:

    • सिस्टम ग्रोवी स्क्रिप्ट के माध्यम से लोड वितरण का विश्लेषण करें और निर्णय लें कि कौन सा नोड अगले निर्माण को शुरू करेगा।
    • Parametertized Trigger plugin के साथ उस नोड पर स्लेव पैरामीटर के उचित मान निर्दिष्ट करके उस नोड पर निर्माण को प्रेषित करें।

आदेश लोड वितरण का विश्लेषण करने में आप Groovy plugin स्थापित करने और Jenkins Main Module API के साथ परिचित की जरूरत है। यहां some useful initial pointers हैं।

+0

, जो इस करता है (मैं पा सकते हैं कि) एक प्लगइन हो प्रतीत नहीं होता है पर समानांतर में चला सकते हैं सीमित करने के लिए कर सकते हैं। हालांकि यह सुझाव बहुत अधिक है ... प्लगइन का उपयोग करने से 'शामिल' है, यह हमारे सर्वोत्तम विकल्प की तरह दिखता है! –

3

यदि आपकी बिल्ड मशीनें 1 से अधिक बिल्डों को आसानी से संभाल नहीं सकती हैं, तो उन्हें 12 निष्पादकों के साथ क्यों कॉन्फ़िगर करें? यदि वास्तव में यह मामला है, तो आपको अधिकारियों की संख्या को 1 तक कम करना चाहिए। मेरी जेनकींस में 30 दास हैं, प्रत्येक में 1 निष्पादक है।

+0

हमारे जेनकिन्स दास कई कार्यों को संभालते हैं, जिनमें से एक हमारे कोड को संकलित करना है। दासों में 12 निष्पादक होते हैं क्योंकि यह एक बार में 12 चीजें कर सकता है (यह इन चीजों का 'सबसे बड़ा' बनता है)। यह 4-5 बिल्डों को ठीक से चला सकता है, यह सिर्फ चीजों को धीमा कर देता है (और हम चाहते हैं कि इन बिल्डों की प्रतिक्रिया जितनी जल्दी हो सके)। इन दासों को 1 निष्पादक को कम करके, हमारे पास 15 कोर बैठे होंगे, जो दिन के बहुमत को निष्क्रिय करते हैं, न कि संसाधनों का एक बहुत ही कुशल उपयोग। –

12

हमें एक समान समस्या का सामना करना पड़ रहा था। तो मैंने एक प्लगइन एक साथ रखा है जो जेनकिंस में लोड बैलेंसर को उस नोड का चयन करने के लिए बदलता है जिसमें वर्तमान में कम से कम लोड होता है - https://wiki.jenkins-ci.org/display/JENKINS/Least+Load+Plugin

कोई भी प्रतिक्रिया की सराहना की जाती है।

+0

ग्रेट, धन्यवाद!नवीनतम प्लगइन निर्माण दिनांक वर्तमान में "27 जून, 2013" है। क्या यह नए जेनकींस संस्करणों के साथ संगत है, उदा। 1.625.3? – t0r0X

+0

यह वर्तमान में 1.625.2 – bstick12

+0

के साथ इसका उपयोग कर रहा है, धन्यवाद, मैं इसे आज़मा दूंगा! – t0r0X