2015-07-31 8 views
20

मेरे पास Azure पर एक उच्च लोड परिनियोजन है: 4 बड़े उदाहरण प्रति सेकेंड 300-600 अनुरोधों की सेवा करते हैं। सामान्य परिस्थितियों में: "औसत प्रतिक्रिया समय" 70 से 150 मिमी है, लेकिन कभी-कभी यह 200-300ms तक बढ़ सकता है, लेकिन यह बिल्कुल ठीक है।इस तरह की Azure वेब साइट के लिए क्या कारण हो सकता है?

हालांकि, प्रति दिन एक या दो बार मैं वेब साइट मॉनिटरिंग टैब पर इस तरह के चित्र देखें ("रश घंटे" नहीं):

Azure Web Site Monitoring

तो, प्रति मिनट अनुरोधों की संख्या काफी बूँदें, औसत प्रतिक्रिया समय 3 मिनट तक बढ़ रहा है, और थोड़ी देर के बाद - सबकुछ सामान्य हो जाता है।

इस "ब्लैकआउट" के दौरान केवल 0.1% अनुरोध गिराए जा रहे हैं (टाइमआउट के साथ एचटीपी सर्वर त्रुटियां), अन्य अनुरोध केवल कतार में प्रतीक्षा करें और आमतौर पर कुछ मिनटों के बाद संसाधित होते हैं। हालांकि, नहीं सभी ग्राहकों को इंतजार करना

:-(

मेमोरी उपयोग 30% के नीचे हर समय है के लिए तैयार हैं, CPU उपयोग केवल 40-50% पर निर्भर है।

क्या मैं पहले से ही देख लिया है ?: समय-आउट अनुरोध के लिए

  1. निशान: वे यादृच्छिक स्थानों पर टाइम आउट हो गया था
  2. Azure संग्रहण और अन्य घटकों के लिए थ्रॉटलिंग प्रयोग किया है:। कोई थ्रॉटलिंग बिल्कुल
  3. मैं भी के माध्यम से मार्ग सभी यातायात की कोशिश की। CloudF भालू: और एक ही समस्या देखी।

ऐसी समस्याओं का कारण क्या हो सकता है? मैं अगला क्या देख सकता हूं?
सभी को अग्रिम धन्यवाद!

अद्यतन 1: BenV कोशिश करने के लिए अच्छी बात का प्रस्ताव रखा, लेकिन दुर्भाग्य से यह कुछ भी नहीं पता चला है :-(
मैं प्रक्रियाओं हर 500k अनुरोध और यह भी कहा कार्यकर्ता नोड्स रीसाइक्लिंग के लिए कॉन्फ़िगर है, तो CPU उपयोग अब 40% से कम पूरे दिन है लंबे समय तक है, लेकिन अभी भी ब्लैकआउट दिखाई

अद्यतन 2:।। परियोजना ASP.Net MVC का उपयोग करता है 4.

+0

मुझे वास्तव में एक छोटे से आवेदन के साथ एक ही समस्या थी। मैंने बहुत सी चीजों की कोशिश की और समाधान शुरुआत में हैंडलर को साफ़ करना था और उन्हें मैन्युअल रूप से जोड़ना था। शायद यह आपको भी मदद करता है। – user2721793

उत्तर

5

वहाँ कुछ अच्छा preview portal में वेब अनुप्रयोग के लिए उपलब्ध उपकरणों है

Azure Web Apps tools menu

Application Insights एक्सटेंशन विशेष रूप से monitoring and troubleshooting app performance के लिए उपयोगी हो सकता है।

enter image description here

+0

धन्यवाद, बेनवी, लेकिन एप्लिकेशन अंतर्दृष्टि में प्रति 5 मिनट में एकत्रित 30 000 मीट्रिक की सीमा होती है जो डेटा संग्रह को मध्यरात्रि तक (जैसा कि मैं समझता हूं) तक रुकने का कारण बनता है, इसलिए यह लोड के तहत अनुपयोगी टूल है (मेरे पास प्रति मिनट 30 000 अनुरोध हैं): - ( –

8

मैं इस में ठीक उसी समस्या थी। मेरे लिए मैंने अपने लॉग में बहुत सी WinCache त्रुटियां देखीं।

जब भी साइट विफल हो जाएगी, तो लॉग में बहुत सी WinCache त्रुटियां होंगी। WinCache यह है कि आईआईएस प्रोसेसिंग को तेज करने की कोशिश करने के लिए PHP को कैसे संभालता है। यह एक माइक्रोसॉफ्ट निर्मित एड-ऑन है जो डिफ़ॉल्ट रूप से आईआईएस और सभी एज़ूर साइटों में सक्षम है। WinCache लटका दिया जाएगा और रीसाइक्लिंग और जारी रखने के बजाय, यह एक उदाहरण पर सभी मेमोरी और फ़ाइल हैंडल का उपभोग करेगा, अनिवार्य रूप से इसे लॉक कर देगा।

मैंने php.ini सेटिंग्स में परिवर्तन के लिए फ़ोल्डर स्कैन करने के लिए Azure पोर्टल में नई ऐप सेटिंग जोड़ा।
घ: \ घर \ साइट \ आरं

जोड़ा गया में घ एक फ़ाइल: \ घर \ साइट \ आरं \ settings.ini कि निम्नलिखित

wincache.fcenabled=1 
session.save_handler = files 
memory_limit = 256M 
wincache.chkinterval=5 
wincache.ucachesize=200 
wincache.scachesize=64 
wincache.enablecli=1 
wincache.ocenabled=0 


यह करता है शामिल कुछ चीजें:

wincache.fcenabled=1 

WinCache का उपयोग कर फ़ाइल कैशिंग सक्षम करता है (मुझे लगता है कि यह टी है वह वैसे भी डिफ़ॉल्ट)

session.save_handler = files 

परिवर्तन सत्र कैश इंजन तनाव को कम करने

memory_limit = 256M 
wincache.chkinterval=5 
wincache.ucachesize=200 
wincache.scachesize=64 
wincache.enablecli=1 

धागा प्रति 256 मेगाबाइट WinCache आकार सेट करता है आधारित मानक फाइल करने के लिए WinCache (Azure डिफ़ॉल्ट) से हैंडलर और सीमित करता है समग्र कैश आकार। यह पुराने डेटा को साफ़ करने और कैश को अधिक बार रीसायकल करने के लिए WinCache को मजबूर करता है।

wincache.ocenabled=0 

यह बड़ा है। अक्षम WinCache ऑपरेशनल कोड कैशिंग। यह WinCache स्मृति में वास्तविक PHP स्क्रिप्ट को कैशिंग कर रहा है। फ़ाइलों को अभी भी लाइन एक से कैश किया गया है, लेकिन PHP सामान्य प्रति व्याख्या की जाती है और बड़ी बाइनरी फ़ाइलों में कैश नहीं होती है।

मैं अपने 3 दिनों में एक बार अपने एज़ूर वेबसाइट क्रैश होने से लॉग इन करता हूं जो आपके बिना किसी भी मुद्दे के 120 दिनों तक सीधे दिखता है।

शुभकामनाएं!

+0

इस तरह के विस्तृत उत्तर के लिए धन्यवाद, मुझे आशा है कि इससे किसी ऐसे व्यक्ति की मदद मिलेगी जिसकी समस्या होगी। लेकिन मैं पूरी तरह से मंच का उल्लेख करने के लिए भूल गया ... मैं एएसपी.नेट एमवीसी और सी # का उपयोग करता हूं। मेरा प्रश्न अपडेट किया गया। –

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