2013-08-22 7 views
11

मैं पिछले दो दिनों से प्ले फ्रेमवर्क 1.2.5 का उपयोग कर रहा हूं, मेरे पास भार परीक्षण पर एक बहुत बड़ी समस्या थी जो प्रत्येक एपीआई कॉल के लिए औसत के रूप में लगभग 1200-1400ms लेता है, लेकिन आज मैंने केवल निम्नलिखित ही बदल दिए हैं फ़ाइल application.conf जो नाटकीय रूप से औसत समय 20 को कम कर देता में एक पंक्ति - 50 एमएस, लाइन इस प्रकार,"application.conf" फ़ाइल में DEV से PROD मोड में बदलते समय क्या होता है?

application.mode=prod 
    %prod.application.mode=prod 

शुरू में यह

application.mode=dev 
    %prod.application.mode=prod 
इस से

तो की तरह था मैं था समझ सकता था देव से उत्पादन में बदलना कुछ और बनाता है जो इंटरनेट में मिला है, dev मोड play.pool = 1 डिफ़ॉल्ट रूप से उत्पादन मोड में play.pool = प्रोसेसर का कोई नहीं + 1, मेरी उबंटू मशीन है 4 प्रोसेसर तो यह 5 धागे का उपयोग करता है। अब समस्या पर आ रहा है, अगर मुझे जो मिला वह सच है तो जब मैं में मैन्युअल रूप से play.pool = 5 को बदलता हूं तो application.conf मुझे तेज परिणाम नहीं देता है और न ही अगर मैं play.pool = 1 सेट करता हूं और उत्पादन में चलाता हूं मोड भी मेरे एप्लिकेशन लोडटेस्ट परिणामों को धीमा नहीं करता है, इसलिए मुझे यह जानने की ज़रूरत है कि जब मैं dev से prod मोड में बदलता हूं, तो play.ool के अलावा, जो मेरे एप्लिकेशन को तेज़ी से बनाता है। क्योंकि मुझे समस्या का सामना करना पड़ रहा है यूएटी में जहां प्रोड मोड में बदलने के लिए कोई अच्छा नतीजा नहीं है, यह केवल मेरे लोकहोस्ट में काम करता है। कृपया मुझे जल्द ही एक समाधान ढूंढें अग्रिम में धन्यवाद।

अद्यतन:

हाँ मैं देव मोड में उन सभी की तरह सामान आवेदन पुनः लोड और compiles लेकिन, शायद उसके नहीं हर केवल प्रारंभिक कार्यक्रम लोड हो रहा है मुझे लगता है कि कम से अनुरोध है, लेकिन के लिए मेरी समस्या है जानते हो यह प्रोड मोड मेरे लोकहोस्ट और मेरे स्थानीय सर्वर पर ठीक काम कर रहा है, जब मैं यूएटी के लिए जाता हूं तो मुझे औसत के रूप में 800ms लोड लोड पर खराब परिणाम मिलते हैं। एप्लिकेशन प्रोड में भी धीमा है, यहां तक ​​कि मैं स्थानीय स्तर पर लोडस्टेट कर रहा हूं (जेएमटर सर्वर मशीन में स्थापित है और मैं रिमोट डेस्कटॉप कनेक्शन का उपयोग करके इसे लोड-टेस्टिंग कर रहा हूं)। तो संकलन और पुनः लोड करने के अलावा, मुझे यह जानने की ज़रूरत है कि application.conf फ़ाइल में किए गए सभी परिवर्तन क्या हैं जब मैं DEV से PROD मोड में बदलता हूं जैसे play.pool में 1 थ्रेड से (प्रोसेसर + 1) थ्रेड से परिवर्तन होता है। एफवाईआई: मेरा लोकलहोस्ट सिस्टम 4 प्रोसेसर मशीन है, और स्थानीय सर्वर मशीन 4 प्रोसेसर है, लेकिन यूएटी मशीन 2 प्रोसेसर है, अगर यह मुद्दा है तो मैंने पूल थ्रेड को 10 (play.pool = 10) में बदलने की भी कोशिश की है। और यूएटी में कोई अच्छा नतीजा नहीं है।

उत्तर

3

dev मोड में एकल धागे के अतिरिक्त, आवेदन शुरू होने तक पहले अनुरोध भेजने में देरी हो जाती है। prod मोड में ऐप तुरंत शुरू होगा। यह स्पष्ट रूप से पहले अनुरोध के लोड समय को प्रभावित करता है।

मुझे लगता है कि dev मोड में 'खराब' प्रदर्शन ज्यादातर मुख्य रूप से चलने के दौरान कक्षाओं को फिर से लोड और संकलित करने के कारण होता है। प्रत्येक अनुरोध कक्षाओं में परिवर्तनों के लिए चेक किया जाता है और पुनः लोड किया जा सकता है। मुझे लगता है कि यह सुविधा लोडिंग समय में बहुत बढ़िया है और मुझे नहीं पता कि यह निष्क्रिय करना भी संभव है या नहीं।

शायद आपको देव मोड में कोई प्रदर्शन/स्वीकृति परीक्षण नहीं चलाया जाना चाहिए। Here's a short a discussion about it। देव मोड प्रदर्शन को बढ़ाने की कोशिश करने के बजाय, आपको केवल प्रोड मोड का उपयोग करना चाहिए।

+0

हां मुझे पुनः लोडिंग और कंप्यूलिंगिन मोड की सभी चीजें पता हैं, लेकिन मेरी समस्या क्या है कि DEV से PROD मोड में बदलने का विचार मेरे स्थानीयहोस्ट और स्थानीय सर्वर में ठीक काम करता है लेकिन यह विचार यूएटी (अमेरिका में परीक्षण स्थल)। कृपया –

2

आपको अपनी बंदूकें कूदने से पहले कुछ और विश्लेषण करना चाहिए।
सबसे पहले आप यह समझने की कोशिश करते हैं कि अतिरिक्त समय कहाँ बिताया जाता है।

  • टेम्पलेट्स प्रस्तुत करना?
  • डीबी कनेक्शन के लिए प्रतीक्षा कर रहे हैं?
  • क्या कोई धागा ताले हैं?
  • क्या डेटाबेस को इंडेक्स के साथ अनुकूलित किया गया है?
  • क्या आपने प्रोसेसर और मेमोरी उपयोग को माप लिया है?
  • क्या आप कोई महंगा आईओ ऑपरेशंस कर रहे हैं?
  • क्या कोई अन्य प्रक्रिया इस मशीन पर चल रही है?
0

आप उत्पादन सर्वर पर कैसे खेल रहे हैं?

मुझे आशा है कि आप पढ़ा है: http://www.playframework.com/documentation/1.2.5/production

आपका प्रश्न एक प्रदर्शन समस्या के बारे में वास्तव में है। आपके स्थानीय पर्यावरण और उत्पादन से प्रदर्शन अंतर होने वाली कई चीजें हो सकती हैं। Play के अलावा, डीबी एक ही बॉक्स पर चल रहा है?

+0

प्रश्न में मेरा अद्यतन देखें हां डीबी एक ही मशीन में चल रहा है। –

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