असंगत पृष्ठ लोड समय


11

मैं एक बड़ी Magento परियोजना को पूरा करने के बहुत करीब हूं और Magento की गति को बेहतर बनाने के लिए अपना ध्यान केंद्रित किया है। एक प्रस्तावना के रूप में, मैं एक फ्रंट-एंड डेवलपर हूं जो इस बड़े प्रोजेक्ट को घर में कर रहा हूं, और चीजों को लगा रहा हूं जैसे कि मैं जाता हूं।

मेरे पास 2GB RAM के साथ एक मीडिया मंदिर समर्पित वर्चुअल सर्वर पर विकास मैगनेटो है। मेरे पास हाल ही में लगभग 600 उत्पाद थे और प्रत्येक उत्पाद पर लगभग 25 अलग-अलग विशेषताएँ (कुल मिलाकर लगभग 300 अद्वितीय विशेषताएँ) और शायद 50 श्रेणियां थीं। मैं 15 के आसपास लोड गति का निवारण करने के प्रयास में उस सब को हटा दिया।

हालाँकि मेरा लोड समय अभी भी लंबा और असंगत है। मैंने फायरबग रिपोर्टिंग के साथ अपने होम पेज को एक प्रतिक्रिया के लिए 500ms पर पुनः लोड किया, और मैं तुरंत फिर से लोड करता हूं और यह 9 से अधिक बार रिपोर्ट करता है। यह एक सर्वर समस्या या Magento के साथ ही कुछ है? मैं कुछ इस तरह का परीक्षण कैसे कर सकता हूं?

जवाबों:


11

आपको पहले यह तय करने की आवश्यकता है कि आप क्या परीक्षण कर रहे हैं, क्या इसका सिर्फ पीएचपी समय प्रस्तुत करता है - या वास्तविक-विश्व पेज लोड समय।

या तो परिदृश्य में, फायरबग का उपयोग विश्वसनीय नहीं होगा - क्योंकि आपका इंटरनेट कनेक्शन खुद ही अड़चन या घबराहट का कारण हो सकता है।

PHP रेंडर समय

यदि आप विशुद्ध रूप से यह देखना चाह रहे हैं कि क्या PHP रेंडर समय में सुधार हुआ है / बदल गया है - तो सबसे सटीक तरीका मैगेंटो बॉयलर से आउटपुट का उपयोग करना है।

में index.php, असहजता

Varien_Profiler::enable();

फिर

व्यवस्थापन> सिस्टम> कॉन्फ़िगरेशन> डेवलपर

सुनिश्चित करें कि प्रोफाइलर सक्षम है।

आप Mage::run()प्रारंभ के बिंदु से मापे गए पृष्ठ लोड समय को तोड़ते हुए, हर पृष्ठ (सामने के अंत और पीछे के अंत) के नीचे एक सारणीबद्ध आउटपुट के साथ समाप्त करेंगे । बहुत पहली पंक्ति कुल PHP रेंडर समय (दाना के भीतर) का संकेत देगी।

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

PHP वेब सर्वर रेंडर समय

अगले प्रकार का परीक्षण वेब सर्वर के ओवरहेड्स में ही कारक है (लेकिन अंतिम-मील कनेक्टिविटी नहीं)। तो इस परीक्षण के सटीक होने के लिए और 'इंटरनेट' से प्रभावित न होने के लिए - आपको इसे वेब सर्वर पर ही चलाना चाहिए।

हम अपनी स्वयं की उपयोगिता का उपयोग करते हैं mage-perftest(अधिक जानकारी यहां पाई जा सकती है ) - जो शुद्ध PHP रेंडर समय, वास्तविक दुनिया पृष्ठ लोड समय और यहां तक ​​कि शव परीक्षण का परीक्षण कर सकती है।

बस PHP वेब सर्वर रेंडर समय का परीक्षण करने के लिए, आप उपयोग करेंगे (URL को तदनुसार बदलें)

./mage-perftest -u me-s1.sonassihosting.com -b

यह परीक्षण पृष्ठ लोड समय (पृष्ठ के PHP तत्व के लिए, किसी भी जेएस / सीएसएस / चित्र को अनदेखा करता है) का टूटना देगा। आउटपुट कुछ इस तरह दिखता है,

Test Summary
============
Total files:              1
Total downloaded:         4K
Avg. page weight:         4.00K

Total time:               0.035s
Min response:             0.035s
Max response:             0.035s
Avg. page response:       0.03s

Concurrency/Repeats:      1
Transactions/s            28.57
Test URL:                 me-s1.sonassihosting.com
Success rate:             1/1 (100.00%)

रियल वर्ल्ड वेब सर्वर रेंडर समय

अंतिम प्रकार का परीक्षण पूरे पृष्ठ (PHP + स्थिर सामग्री) को डाउनलोड करने में लगने वाला समय है। फिर, आप ऐसा करने के mage-perftestलिए उपयोग कर सकते हैं , जैसे।

./mage-perftest -u me-s1.sonassihosting.com

प्लेग जैसी किसी भी ऑनलाइन परीक्षण सेवा से बचें

कुछ ऑन-लाइन स्पीड टेस्ट टूल जैसे जीटीमेट्रिक्स, पीएसटीआई आदि हैं। ये आपको ग्रैन्युलर प्रोफाइलिंग के लिए किसी भी प्रकार का सटीक परिणाम नहीं देने वाले हैं।

बाहरी नेटवर्क कनेक्टिविटी के परीक्षण के मामले में उनका स्थान है, लेकिन वास्तविक PHP प्रदर्शन की जांच के साधन के रूप में पूरी तरह से बेकार है। इसके लिए ऑन-सर्वर / लोकल टेस्टिंग से चिपके रहें।

अन्य नोट

हमने दूरस्थ परीक्षण पर एक लेख लिखा और आपको इससे क्यों बचना चाहिए, http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- प्रदर्शन/

एक VPS में रनिंग Magento एक बुरा विचार है। अन्य लोग असहमत हो सकते हैं - लेकिन इसके कई कारणों से एक Magento स्टोर के लिए उपयुक्त वातावरण नहीं है - और हमने इस शिरा के नीचे बहुत सारे सवालों के जवाब दिए हैं, यहाँ कुछ हैं


Perftest बहुत बढ़िया है - क्या यह Github पर है इसलिए मैं इसे कांटा सकता हूं?
philwinkle

मुझे पेरेस्टेस्ट चलाने में परेशानी हुई, लेकिन प्रोफाइलर ने कुछ दिलचस्प जानकारी प्रदान की: mage::dispatch::routers_matchऔर एक अड़चन mage::dispatch::controller::action::predispatchप्रतीत होती है , हालांकि मुझे यकीन नहीं है कि इसका क्या समाधान है ... खोज में ज्यादा कुछ नहीं है।
एंडवेज

जितने अधिक पृष्ठ मैं एक बार में खोलता हूँ, उतने ही अधिक समय के लिए Magento खर्च करता है mage::dispatch::routers_match, एक 28 पृष्ठ पृष्ठ पर 22 के लिए लेखांकन। इसी भार पर, mage::dispatch::controller::action::predispatch२२ में, CORE::create_object_of::Mage_Core_Model_Session२१ में और Mage_Core_Model_Session_Abstract_Varien::start/start२१ में भी है। मुझे यकीन है कि कुछ माता-पिता / बच्चे की बात चल रही है, लेकिन routers_matchसबसे लंबे समय तक रहने के साथ, मैं मान रहा हूं कि अन्य 20 दूसरे कार्यों के माता-पिता हैं
andyjv

प्रोफाइलर आउटपुट पदानुक्रम रूप से समावेशी है। अर्थात। यह उस फ़ंक्शन के भीतर चलने वाली हर चीज़ के लिए एक समावेशी कुल दिखा रहा है। तो Mageसबसे लंबे समय तक ले जाएगा क्योंकि इसमें सब कुछ शामिल है, Routers_Matchमूल रूप से अगला फ़ंक्शन है जिसे कॉल किया गया है, जो कि बाकी सब कुछ है। इसकी अड़चन नहीं है, लेकिन कुछ इसे बुला रहा है (तालिका में और नीचे देखें)। यदि आप प्रोफाइलिंग कर रहे हैं तो 1 से अधिक विंडो न खोलें - जो कुछ भी हासिल करने वाला नहीं है।
बेन लेसानी - सोनासी

नीचे Routers_Matchहै: DISPATCH EVENT:controller_action_predispatch21.0710 बजे, और OBSERVER: log21.0565 पर
andjv

3

यह सबसे अधिक संभावना है कि सर्वर समस्या है और मैगेंटो मुद्दा नहीं है। आप किस तरह के सर्वर का उपयोग करते हैं इसके आधार पर, आप एक सेकंड से कम का लोड समय प्राप्त कर सकते हैं। आप यहां अधिक परिष्कृत परीक्षण भी चला सकते हैं: http://www.magespeedtest.com/ । आप अन्य सर्वर प्रदाताओं से भी गति की समीक्षा कर सकते हैं।

मैं http://www.webpagetest.org/ से झरना रिपोर्ट का उपयोग करने की भी सिफारिश करूंगा और देखूंगा कि वास्तव में आपकी "सुस्ती" कहां से आ रही है। यह इसे भागों में तोड़ देगा (जैसे कि प्रत्येक css, js और छवि फ़ाइल को डाउनलोड करने में कितना समय लगता है) जो आपको गति में सुधार करने में मदद कर सकता है।

कहा जा रहा है, भले ही आप मैगेंटो कोड, सीएसएस, जेएस, चित्र और सामग्री को पूरी तरह से अनुकूलित करते हैं, सर्वर हमेशा सबसे बड़ा मुद्दा होगा। मैं Magento के होस्टिंग प्रदाता का उपयोग करने की सलाह दूंगा, क्योंकि उनके पास Magento की मदद करने के लिए उनके सर्वर अधिक ठीक हैं। व्यक्तिगत रूप से, मैं नेक्सस का उपयोग करता हूं, लेकिन दूसरों को मैंने सोनासी होस्टिंग, और पीर 1 के बारे में अच्छी बातें सुनी हैं।

गति में सुधार करने के तरीके के बारे में कुछ लेख हैं, मैं Magento वेबसाइट पर सफेद पृष्ठों को पढ़ने की सलाह दूंगा।

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


1
आप यहाँ kab8609 है अच्छा है! :-)
फाबियन ब्लेचस्मिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.