2013-08-07 6 views
12

वास्तव में किसी विशेष मामले की सीमा तक सीमित होने का विकल्प होना चाहिए, इससे कोई फर्क नहीं पड़ता। एप्लिकेशन सेटिंग्स मेनू में आप जो भी कर सकते हैं वह अधिकतम आईडीई उदाहरणों को सीमित करना है, जो मुझे यकीन नहीं है कि यह इरादे से काम करता है या नहीं। मेरा मतलब है कि मैंने मैक्स निष्क्रिय उदाहरण से 1 और न्यूनतम लंबित लेटेंसी से 15 सेकंड तक सेट किया है, लेकिन मुझे अभी भी दो अनुरोधों को कभी-कभी चल रहा है, बिना किसी अनुरोध के लंबे समय तक। क्या वे निष्क्रिय होने के 15 मिनट के बाद बंद नहीं होना चाहिए? और यह उन सेटिंग्स के साथ एक सेकेंड इंस्टेंस क्यों फायर करता है, इस पर विचार करते हुए कि कोई अनुरोध 15 सेकंड तक देरी नहीं हुई है?Appengine - उदाहरणों की संख्या सीमित करें

मैं एक सरल "मेरा आईपी क्या है" पायथन ऐप चलाता है, जिसे वास्तव में उच्च प्रदर्शन की आवश्यकता नहीं होती है। मेरा मतलब यह है कि अगर प्रतिक्रिया 100ms या 5 सेकंड के बाद होती है तो वास्तव में कोई फर्क नहीं पड़ता है, यह सब मायने रखता है कि केवल एक उदाहरण चल रहा है, ताकि उन दैनिक 28 उदाहरण घंटे कभी खत्म न हों।

+1

क्या आपने नए मॉड्यूल कॉन्फ़िगरेशन का उपयोग करने का प्रयास किया है: https://developers.google.com/appengine/docs/python/modules/#config – Faisal

+0

नहीं, मैंने नहीं किया है, लेकिन मैं इसे दूंगा प्रयत्न। धन्यवाद! – Chris

+1

"इंस्टेंस क्लास एफ 1 केवल 'स्वचालित' स्केलिंग मान के साथ अनुमति है।" बमर, आप केवल मैन्युअल स्केलिंग के लिए बैकएंड का उपयोग कर सकते हैं, जो 8 घंटे तक सीमित है। : | – Chris

उत्तर

13

मेरे ऐप में वर्तमान में केवल ट्रैफ़िक की संख्या है, इसलिए थोड़ा सा डॉलर भी देना मेरे लिए मायने रखता है। इंस्टेंस क्लास को अनुकूलित करने के तरीके पर सीखने और इतने सारे विकल्प की कोशिश करने के बाद। मुझे निम्न सेटिंग मिली जो मुझे Google Appengine पर सक्षम बिलिंग स्थिति के साथ चल रहे एप्लिकेशन के साथ निम्नतम billing rates प्रदान करता है।

मैं फ्रंट 1 उदाहरण सेट करने के लिए एफ 1 कक्षा का उपयोग करता हूं।
यहां मैं yaml संस्करण में कोड।

instance_class: F1 
automatic_scaling: 
    max_idle_instances: 1 # default value 
    min_pending_latency: automatic # default value 
    max_pending_latency: 30ms 

मैं बैकएंड उदाहरण सेट करने के लिए बी 1 कक्षा का उपयोग करता हूं।
यहां मैं yaml संस्करण में कोड।

instance_class: B1 
basic_scaling: 
    max_instances: 1 
    idle_timeout: 10m 

और यहाँ appeengine.web.xml में डालने के लिए कोड है

<threadsafe>true</threadsafe> 
<instance-class>B1</instance-class> 
<basic-scaling> 
<max-instances>1</max-instances> 
<idle-timeout>10m</idle-timeout> 
</basic-scaling> 

आमतौर पर मैं 4 मॉड्यूल, एफ 1 वर्ग में 2 मॉड्यूल, और 2 मॉड्यूल चला रहा हूँ (Maven के साथ जावा संकलन करता है, तो) बी 1 कक्षा में। उन्होंने मुझे 0 दैनिक खर्च किया। हालांकि जब मेरी साइट यातायात के खिलाफ व्यस्त हो रही है तो मैं वर्ग को एफ 2 और बी 2 तक बढ़ाता हूं और कुल दैनिक लागत यूएस $ 0.50 से कम है।

यहाँ कुछ सुझाव बिल योग्य उदाहरण कम करने के लिए कर रहे हैं:

अपने क्लास एफ मॉड्यूल 28 hours free daily quota से ज्यादा चलाने
  • हैं, Class B के साथ एक और मॉड्यूल बनाने के लिए विचार करें। इसके द्वारा आपको एक और 9 free instance hours मिलता है। आप इसे cron, task या background जैसी कोई अन्य नौकरी चलाने के लिए उपयोग कर सकते हैं। सुनिश्चित करें कि /_ah/stop का स्वचालित शट डाउन ठीक से काम करता है। लंबे समय तक निष्क्रिय उदाहरण को गिनने की अनुमति न दें।
  • न्यूनतम उदाहरण के साथ चलाने के लिए अपने होमपेज या लैंडिंग पृष्ठ को सरल बनाएं। यदि संभव हो तो एक से अधिक उदाहरण नहीं। जब यह आपके आगंतुक आपके पृष्ठ पर कुछ करता है तो यह केवल अधिक उदाहरण चलाता है। अपनी साइट का अनुकूलन करने से blobstore की नि: शुल्क कोटा ले, data storage, और datastore पर विचार करें। आउटगोइंग बैंडविड्थ को कम करने के लिए आप Google Hosted Libraries पर स्क्रिप्ट का भी उपयोग कर सकते हैं।
  • जब भी एक यातायात अनुरोध मॉड्यूल के हैंडलर पर जा रहा है तो यह निश्चित रूप से एक उदाहरण चलाएगा।तो static cache expiration सेट करने के बगल में यह सलाह दी जाती है कि एचटीएमएल, इमेजेस, जेएस, और सीएसएस जैसे स्टेटिक फाइलों को Google क्लाउड स्टोरेज (जीसीएस) client library और gsutil का उपयोग करके अपनी बाल्टी से परोसा जाता है।
    इसे public-read के रूप में सेट करें। इस योजना के साथ आपका उदाहरण काफी कम हो जाएगा क्योंकि इसका अनुरोध से कोई प्रभाव नहीं पड़ता है। आप मान सकते हैं कि GCS Monthly PricingHourly Instance Cost के कुल संचयी द्वारा उठाए गए मासिक बिल की तुलना में बहुत सस्ता तुलना है।
    सबडोमेन (www सहित) के रूप में अपनी बाल्टी को वेबसाइट के रूप में कॉन्फ़िगर करने का तरीका जानें, जैसा कि here समझाया गया है। इसके अतिरिक्त, यदि आप अपने खाली डोमेन का उपयोग करना चाहते हैं, तो आप इसे set ए (होस्ट) और एएएए द्वारा www पर रीडायरेक्ट कर सकते हैं, या यदि आप अपने नग्न डोमेन को सेट के रूप में सेट कर सकते हैं तो आप इसे पूरी तरह से स्वतंत्र भी बना सकते हैं Alias/AName सीधे जीसीएस (सी .storage.googleapis.com) पर।
  • यदि आपका एप्लिकेशन डेटा ऑपरेशन के आधार पर गतिशील रूप से चल रहा है, तो आपको यह पता होना चाहिए कि प्रत्येक प्रकार के डेटाबेस जैसे MySQL, क्लाउड स्टोरेज इत्यादि भी एक उदाहरण या ऑपरेशन काउंटर चलाएंगे। सुनिश्चित करें कि आप किसी भी अवांछित बॉट यातायात को अवरुद्ध कर रहे हैं और उन्हें एक गतिशील पृष्ठ की सेवा नहीं कर रहे हैं। मेरा सुझाव है कि आप "Datastore Small Operations" का उपयोग करने पर भी विचार करें। अन्य डेटाबेस ऑपरेशन की तुलना करें इस तरह के डेटा ऑपरेशन आपको मुफ्त लगेगा। बेशक आपको Quercus जैसे इसका उपयोग करने के लिए अपने कोड को अनुकूलित करने की आवश्यकता होगी। here, here और here पर कुछ अच्छी चर्चा है।
+0

आपकी अंतिम बुलेट में वर्णित विधि उपयोग समझौते की शर्तों का उल्लंघन है। https://cloud.google.com/terms/?csw=1: "प्रतिबंध। ग्राहक नहीं ... एक ही आवेदन, खाता, या परियोजना (क्रमशः) के अनुकरण या कार्य करने के लिए कई अनुप्रयोग, लेखा, या परियोजनाएं तैयार करेगा या अन्यथा शुल्क लेने से बचने के इरादे से सेवाओं का उपयोग करें " –

+0

नोट किया गया। मैंने आखिरी गोलियां पूरी तरह से निकाली हैं। शर्तों को इंगित करने के लिए धन्यवाद। – hyip

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