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


100

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

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

जवाबों:


176
  • यदि आपका एप्लिकेशन कुछ समय के लिए अप्रयुक्त है (यह सर्वर मेमोरी से) अनलोड हो जाता है।
  • पहली हिट पर यह लोड हो जाता है और लोड हो जाता है जब तक कुछ समय तक किसी को भी इसे एक्सेस किए बिना गुजरता है।

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

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


51
इसे ठीक करने के लिए सबसे आसान तरीका 2. करने के लिए अपने dynos को बढ़ाने के लिए है
Chap

5
@diegopau मुझे एक अच्छा ऐप मिला ( wekkars.com ) जो ठीक उसी तरह से करता है जैसा आपको चाहिए। फिलहाल ऐसा लगता है कि यह बीटा में है, लेकिन यह यहां पर काम करता है।
SteenhouwerD

68
इसे निष्क्रिय रखने के लिए अपने सर्वर को पिंग करना आपके अपने घोंसले में तड़प रहा है। इन सेवाओं के बारे में बात कर रहे हैं आप स्वतंत्र हैं । उन्हें संसाधनों के संरक्षण की जरूरत है। यदि हर कोई अपने सर्वर को पिंग करता है, तो कोई भी बाहर नहीं निकलता है, और प्रदाता को स्केल करना पड़ता है। यह पैसा खर्च करता है .... अलविदा नि: शुल्क सेवा। मुझे लगता है कि इस उत्तर के पोस्टर को सर्वर को पिंग करने के लिए सुझाव को हटाना चाहिए।
GreenAsJade

32
मैं हर 5 मिनट में अपने हरोकू ऐप को मुफ्त में पिंग करने के लिए uptimerobot.com का उपयोग करता हूं - यह बताता है कि मेरे पास 200OK है (और अधिक महत्वपूर्ण बात यह है कि जब मैं नहीं) और यह एप्लिकेशन को उत्तरदायी रखता है। मैं इसके लिए कोई क्षमा नहीं करता; मेरे पास 10 हरोकू ऐप हैं, जिनमें से अधिकांश देव या डेमो ऐप हैं, लेकिन यह विशेष रूप से लाइव / प्रोडक्शन है और कम ट्रैफ़िक के बावजूद अनुरोध किए जाने पर इसे तुरंत प्रतिक्रिया देने की आवश्यकता होती है। अगर यह हरोकू के बिजनेस मॉडल के लिए खतरा था तो वे हमें ऐसा करना बंद कर देंगे। जब मुझे हजारों वैश्विक उपयोगकर्ता मिल गए हैं, तो मैं एक और dyno को स्पिन करूंगा और एक महान सेवा के लिए भुगतान करना शुरू करूंगा। तो अपराध-यात्रा की बात छोड़ो! :)
ईडी -209

3
मैं टोकन के साथ हूं। अगर उपयोगकर्ताओं को साइट लोड होने से पहले उठने से पहले छोड़ दें तो नए ऐप्स को कैसे प्राप्त करना चाहिए?
देबोराह

14

आप हेक्कु डब्ल्यू / वार्निश और मेमकेड पर आपके द्वारा दिए गए कैशिंग विकल्पों की भी जांच करना चाहते हैं। ये राजवंशों से स्वतंत्र हैं।

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


4

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

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

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

अपने ऐप को गिरने से बचाने के लिए 1 अतिरिक्त dyno जोड़ें, यदि वह पुनः लोड करना महत्वपूर्ण है।


3

मुझे भी यही समस्या हो रही है। मैंने कल रात एक रेल 3 (1.9.2) ऐप तैनात किया है और यह धीमा है। मुझे पता है कि 1.9.2 / रेल 3 हेरोकू पर बीटा में है लेकिन समर्थन टिकट ने कहा कि यह मुझे भेजे गए कुछ निर्देशों का उपयोग करके ठीक होना चाहिए।

मैं समझता हूं कि लंबे समय के बाद पहला अनुरोध सबसे लंबा लगता है। समझ में आता है। लेकिन बस लोडिंग पृष्ठों जो कभी-कभी 10 सेकंड लेने वाले डीबी से कनेक्ट नहीं होता है, कभी-कभी बहुत खराब होता है।

वैसे भी, आप कोशिश कर सकते हैं कि मैं क्या करने जा रहा हूं। यह मेरा ऐप है और देखें कि इसे स्थानीय रूप से कितना समय लगता है। अगर यह 400ms ले रहा है तो कुछ गलत है। लेकिन अगर मुझे स्थानीय स्तर पर 50 मी मिलता है और हरकोको पर 10 सेकंड लगते हैं तो कुछ निश्चित रूप से गलत है।

जाहिर है, कैशिंग मदद करता है, लेकिन आपको केवल 5 एमबी मुफ्त में मिलता है और एक बार फिर, साइट का उपयोग करने वाले एक व्यक्ति के साथ, यह धीमा नहीं होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.