2014-10-16 4 views
14

मैं और कुछ अन्य डेवलपर्स को एआई प्रतियोगिता मिल रही है। असल में, हमारे पास एक साधारण बोर्ड गेम है और हमारे पास प्रत्येक लिखित एआई है जो एक दूसरे के खिलाफ खेलने के लिए अपने स्वयं के वेबसाइसेस पर होस्ट की जाएगी।क्या Azure Throttling My WebApi है?

मुझे एक मिल गया है और यह एक साधारण वेबएपी 2 आधारित सेवा है जो Azure पर प्रकाशित है। मेरी उम्मीद है कि यह ज्यादातर समय शांत रहेगा, और फिर अचानक जब एक गेम शुरू होता है, तो यह 200-400 अनुरोधों को सभी संभावित रूप से बहुत जल्दी प्राप्त करेगा (एक गेम केवल कुछ सेकंड तक चल सकता है)। गेम सर्वर और एआई रन-ऑफ-द-मिल JSON POST के साथ संवाद करते हैं।

मेरा मुद्दा यह है कि, Azure अनुरोधों को थ्रॉटलिंग प्रतीत होता है। पहले कुछ कदम बहुत तेज होते हैं, और फिर सब कुछ धीमा हो जाता है।

मुझे आश्चर्य है कि क्या एज़ूर सोचता है कि यह एक संभावित डॉस हमला या कुछ है। चीजें धीमा होने के बाद पीछे हटने में एक सेकंड लग सकता है। ब्याज के कुछ बिंदु:

  • ऐसा कभी नहीं होता जब स्थानीय रूप से होस्ट किया जाता है।
  • कोई डेटाबेस नहीं है।
  • यह एक साधारण परीक्षण एआई के साथ भी होता है जो केवल यादृच्छिक रूप से टुकड़े चलाता है (इसलिए कोई गणना लोड नहीं)
  • ऐसा तब होता है जब गेम होस्ट को एज़ूर में भी तैनात किया जाता है (इसलिए यह दो Azure साइट्स एक-दूसरे से बात कर रही हैं)।

तो मैं इसे कैसे ठीक कर सकता हूं? क्या वहां कोई सेटिंग है जहां मुझे याद आ रही है जहां मैं Azure को बता सकता हूं कि इस तरह के व्यवहार की उम्मीद है? मेरे पास वर्तमान में एक साझा सेवा के रूप में है, लेकिन मैंने दो उदाहरणों से पहले इसे मूल सेवा के रूप में परीक्षण किया, और मैं अभी भी मंदी देख रहा था।

+0

यह किस योजना पर है? – usr

+0

मैंने इसे साझा और मूल योजना के रूप में दोनों की कोशिश की है। बेसिक के रूप में परीक्षण करते समय, मैंने इंस्टेंस नंबर 2 को अपनाने का भी प्रयास किया। यह मदद नहीं प्रतीत होता। – Pharylon

+2

यह लिंक आपके लिए उपयोग किया जा सकता है: http://stackoverflow.com/questions/7849884/what-is-limiting-the-of-simultaneous-connections-my-asp-net- appplication-can-ma – Shay

उत्तर

2

मुद्दा निरंतर कनेक्शन की अनुमति की संख्या था मई। ग्राहक बहुत मैला था और प्रत्येक अनुरोध के लिए एक नया कनेक्शन बना रहा था। इससे कनेक्शन की संख्या सीमा से अधिक हो गई।इसे this answer में हल किया जा सकता था (जैसा कि शै ने टिप्पणियों में बताया, मेरी इच्छा है कि मैं एक टिप्पणी को सही उत्तर के रूप में चिह्नित कर सकता हूं!)। लेकिन जैसा कि मेरे पास क्लाइंट कोड तक पहुंच है, मैंने इसे वहां तय किया है।

2

हां, यदि आप नि: शुल्क या साझा योजना पर थे तो हो सकता है कि आप थ्रॉटल हो रहे हों। नि: शुल्क योजना के साथ आपको प्रति दिन 60 मिनट CPU समय मिलता है और साझा किए जाने के साथ आपको प्रति दिन 240 मिनट CPU समय मिलता है।

साझा वेबसाइट के लिए अधिकतम औसत मेमोरी उपयोग (प्रति घंटा) 1 जीबी है। लेकिन मुझे लगता है कि आप पहले ही मेमोरी लीक के लिए अपना कोड प्रोफाइल कर चुके होंगे।

वेबसाइकिलों पर सीमाएं हैं लेकिन मुझे यकीन नहीं है कि यह एक सामान्य टीसीपी कनेक्शन सीमा है या नहीं।

Here सीमाओं के लिए लिंक है।

मुझे लगता है कि मूल योजना आपको अनुमानित प्रदर्शन देनी चाहिए, लेकिन मूल योजना में यह छोटा उदाहरण केवल 1.6 गीगाहर्ट्ज सीपीयू है, जो शायद आपकी स्थानीय मशीन की तुलना में बहुत कम CPU और कोर होगा।

मुझे लगता है कि मानक ए 2 आकार क्लाउड सेवा वेब भूमिका (2 कोर) वेबसाइट की तुलना में अधिक उपयुक्त हो सकती है। आपके कोड के आधार पर (यदि वे अधिकांश सीपीयू का उपयोग करने में सक्षम हैं और भूमिकाओं के बीच कार्यों को वितरित कर सकते हैं) यहां तक ​​कि एकाधिक ए 0 उदाहरण भी अधिक अनुशंसित होंगे।

एक उचित प्रतिस्पर्धा के लिए, आपके पास सीपीयू बाधा भी हो सकती है, यह बहुत रोचक है।

शुभकामनाएँ

, और सबसे अच्छा कोड जीत :)

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