ruby - मेरे मूल हेरोोक ऐप्स को लोड करने में दो सेकंड क्यों लग रहे हैं?



performance heroku (3)

आप Heroku w / Varnish और Memcached पर आपके कैशिंग विकल्पों की जांच भी कर सकते हैं। ये dynos से स्वतंत्र बने रहे हैं।

उदाहरण के लिए, यदि आपके पास एक अपरिवर्तनीय मुखपृष्ठ है, तो आप कैश-कंट्रोल हेडर को प्रतिक्रिया में जोड़कर वर्नीश में विस्तारित अवधि के लिए कैश कर सकते हैं। तब आपके उपयोगकर्ताओं को तब तक लोड हिट का अनुभव नहीं होगा जब तक कि वे आने पर बजाए "कुछ नहीं करना" चाहते हैं।

मैंने सेवा का परीक्षण करने के लिए दो बहुत ही सरल हेरोकू ऐप्स बनाए, लेकिन जब मैं पहली बार उन पर जाता हूं तो पेज को लोड करने में कई सेकंड लगते हैं:

मैंने जो कुछ किया वह सरल सिनात्रा ऐप बनाया गया था और इसे तैनात किया गया था। मैंने हरोकू सर्वर के साथ गड़बड़ करने या परीक्षण करने के लिए कुछ भी नहीं किया है। प्रतिक्रिया समय में सुधार करने के लिए मैं क्या कर सकता हूं? यह अभी बहुत धीमा है और मुझे यकीन नहीं है कि कहां से शुरू करना है। परियोजनाओं के लिए कोड github पर हैं अगर यह मदद करता है।


Answer #1

आपको टॉम रॉबिन्सन का जवाब "स्केलेबिलिटी: हेरोोकू कैसे काम करता है?" का जवाब देखना चाहिए Quora पर: http://www.quora.com/Scalability/How-does-Heroku-work Heroku-work

हेरोकू कई अलग-अलग ग्राहकों / अनुप्रयोगों के बीच सर्वर संसाधनों को विभाजित करता है। आपके ऐप को कंप्यूटिंग पावर के ब्लॉक आवंटित किए गए हैं। संसाधन मांग के आधार पर हेरोकू विभाजन। जब आपके पास एक लोकप्रिय एप्लिकेशन है जो अधिक शक्ति की मांग करता है, तो आप अधिक 'dynos' (एप्लिकेशन कंटेनर) के लिए भुगतान कर सकते हैं और फिर बदले में पाई का एक बड़ा हिस्सा प्राप्त कर सकते हैं।

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

अपने ऐप को सोने से रोकने के लिए 1 अतिरिक्त डाइनो जोड़ें, अगर वह रीलोड समय महत्वपूर्ण है।


Answer #2
  • यदि आपका एप्लिकेशन थोड़ी देर के लिए उपयोग नहीं किया जाता है तो यह अनलोड हो जाता है (सर्वर मेमोरी से)।
  • पहली हिट पर यह लोड हो जाता है और कुछ समय तक लोड होने तक लोड हो जाता है।

यह सर्वर संसाधनों को सहेजने के लिए किया जाता है। यदि कोई भी आपके ऐप का उपयोग नहीं करता है तो संसाधनों को व्यस्त क्यों रखें और किसी ऐसे व्यक्ति को न दें जो वास्तव में उन्हें उपयोग करने की ज़रूरत है?
यदि आपके ऐप में बहुत सारे ट्रैफिक हैं तो इसे कभी भी अनलोड नहीं किया जाएगा।

इसके बारे में एक आधिकारिक नोट है।





heroku