2015-12-03 5 views
8

मैं एक डिनो और कई प्यूमा श्रमिकों के साथ हेरोकू पर एक छोटा रेल ऐप चला रहा हूं।क्या मुझे हेरोोकू पर प्यूमा के साथ preload_app का उपयोग करना चाहिए?

Puma docs कहते हैं:

जनरल नियम preload_app उपयोग करने के लिए जब अपने कार्यकर्ताओं अक्सर मर जाते हैं और तेजी से शुरू होता है की जरूरत है। यदि आपके पास कई कर्मचारी नहीं हैं, तो आपको शायद preload_app का उपयोग नहीं करना चाहिए।

यह सुझाव देता है कि मुझे में preload_app! का उपयोग नहीं करना चाहिए। हालांकि, मेरे पास कुछ अनुत्तरित प्रश्न हैं:

  • मेरे कर्मचारी कब मरते हैं? क्या उन्हें कुछ निश्चित अनुरोधों के बाद काटा और फिर से फोर्क किया जाएगा? मैं इसकी निगरानी कैसे कर सकता हूं?
  • मुझे कैसे पता चलेगा कि मेरे कर्मचारियों को तेजी से शुरू करने की आवश्यकता है या नहीं?

यह स्पष्ट है कि preload_app! जब कई श्रमिकों का उपयोग कर संसाधनों को बचाने चाहिए है, लेकिन मैं इसे का उपयोग भी कार्यकर्ताओं की एक छोटी संख्या के साथ का नुकसान नहीं दिख रहा।

"सरल रेल एप्लिकेशन" के लिए हेरोकू के recommended config में preload_app! शामिल हैं लेकिन वे इसका उपयोग न करने पर कोई मार्गदर्शन नहीं देते हैं।

preload_app! कब उपयोग नहीं किया जाना चाहिए, और क्यों? (चरणबद्ध पुनरारंभ समस्या को अनदेखा करना।)

+1

मेरे पास एक ही प्रश्न है और मेरे google fu ने कुछ भी अतिरिक्त नहीं किया है। – Graeme

उत्तर

0

कार्यकर्ता तेज़ी से शुरू करने के अलावा, preload_app! रूबी 2.0 में पेश की गई Copy on Write सुविधा के लिए मेमोरी धन्यवाद भी बचाता है।

लिखें या गाय पर कॉपी एक अनुकूलन है कि एक रूबी प्रक्रिया की स्मृति पदचिह्न को कम कर सकते हैं जब यह की नकल की है:

आप इस great write-up from Heroku रूबी में कॉपी-ऑन-राइट के विचार शुरू पढ़ सकते हैं। जब प्रक्रिया को फोर्क किया जाता है तो डुप्लिकेट मेमोरी आवंटित करने के बजाय, गाय कई प्रक्रियाओं को उसी स्मृति को साझा करने की अनुमति देता है जब तक कि किसी एक प्रक्रिया को जानकारी के टुकड़े को संशोधित करने की आवश्यकता न हो।

इस प्रकार कोई फर्क नहीं पड़ता कि आपके पास कितने काम हैं, यदि संभव हो तो preload_app! को सक्षम करने की हमेशा अनुशंसा की जाती है।

संबंधित मुद्दे