क्या आपके लिए वार्निश सही है?
वार्निश मैगेंटो के प्रदर्शन का सब-कुछ और अंत नहीं है। बॉट्स और विंडो-शॉपर्स से लोड को ऑफसेट करने के लिए यह बहुत अच्छा है - लेकिन यह वास्तव में आपके स्टोर को तेज बनाने के लिए कॉल का आपका पहला पोर्ट नहीं होना चाहिए।
वास्तव में, वार्निश को लागू करना आपके स्टोर में अंतिम प्रदर्शन संशोधन होना चाहिए । केवल इसे एक बार ड्रॉप करें जब आप पृष्ठ लोड समय देख रहे हैं तो Magento इसके बिना वितरित करने में सक्षम है (जैसे। <600ms पेज लोड समय)।
आपके स्टोर को अभी भी तेज होना चाहिए
जैसा कि वार्निश को अभी भी कैश प्राइम करने के लिए कम से कम एक पेज लोड की आवश्यकता है, इसका मतलब है कि आपके अन-कैश्ड प्रदर्शन को अभी भी बहुत अच्छा होना चाहिए। अनूठे URL (बहुप्रतीक्षित नेविगेशन हिट, खोज क्वेरी आदि) का एक विशाल हिस्सा वास्तव में वार्निश से कभी भी समाप्त नहीं होगा जब तक कि:
क) आपके टीटीएल इतने अधिक हैं, कि 4 दिन पहले की खोज क्वेरी अभी भी मान्य है
b) साइट पर फुटफॉल इतना विशाल है कि URL बहुत कम समय में आबाद हो जाते हैं
आपको यह भी विचार करना होगा कि हर दुकान खुद को वार्निश के लिए उधार नहीं देती है । कोई भी साइट जो उपयोगकर्ताओं को एक व्यक्तिगत सत्र बनाने के लिए प्रोत्साहित करती है (उदाहरण के लिए, लॉग-इन, ऐड-टू-कार्ट आदि) उनकी ग्राहक यात्रा के आरंभ में इसका मतलब यह होगा कि वार्निश अंततः अनावश्यक हो जाएगा।
उदाहरण के लिए, निजी शॉपिंग साइटें ऑन-सेट से उपयोगकर्ता लॉगिन को प्रोत्साहित करती हैं, हालांकि, ऐसा करने में, इसका मतलब है कि वार्निश में वास्तव में गैर-अद्वितीय सामग्री नहीं है जो कैश-सक्षम है। तो आपकी हिट दरें काफी कम होंगी और वार्निश का उपयोग करने से कोई लाभ नहीं होगा।
ताजा सामग्री या उच्च हिट दर
छवि magestack.com के सौजन्य से
वार्निश का प्रभावी ढंग से उपयोग करना सभी बासी सामग्री और आपकी साइट पर आगंतुकों की मात्रा के बीच संतुलन बनाने के बारे में है।
यदि आपको एक व्यस्त साइट मिल गई है - ऑड्स हैं तो आप कम टीटीएल के साथ दूर हो सकते हैं और अभी भी उच्च वार्निश हिट दर है - और कम टीटीएल भी जारी रख सकते हैं - इस प्रकार, ताज़ा सामग्री। तो आपके स्टॉक / मूल्य परिवर्तन जल्दी से परिलक्षित होते हैं और कैश लगातार फुटफॉल की मात्रा से प्राइम होता है।
यदि आपको एक कम-ट्रैफ़िक साइट मिली है - तो आपको एक समझौता करना होगा। उच्च हिट दर सुनिश्चित करने के लिए या तो अपने टीटीएल बढ़ाएँ - या अप-टू-डेट सामग्री। आपके पास दोनों नहीं हो सकते। हां, आप क्रॉल / स्पाइडर टूल को लगातार चला सकते हैं - लेकिन जिन संसाधनों का यह उपभोग करेगा, और सरासर मात्रा या URL जिन्हें क्रॉल किया जा सकता है (आमतौर पर छोटे स्टोरों के लिए हजारों में ) इसका मतलब यह है कि यह बस प्रभावी नहीं है। इसलिए आमतौर पर, छोटे स्टोरों को एक अच्छे एफपीसी एक्सटेंशन और अधिक अनुकूलित सर्वर कॉन्फ़िगरेशन से अधिक लाभ होगा ।
लेकिन निश्चित रूप से मैं वार्निश का उपयोग तब भी कर सकता हूं जब उपयोगकर्ता लॉग-इन कर रहे हों, कैश-प्रति-उपयोगकर्ता या ईएसआई के बारे में क्या?
ESIS
ईएसआई कैश में सामग्री रखने में सक्षम होने के लिए एक उत्कृष्ट उपयोगिता है, और अभी भी पृष्ठ पर गतिशील ब्लॉक करने में सक्षम हैं। लेकिन प्रभावी ढंग से उपयोग किए जाने के लिए, आपको कॉलबैक की मात्रा को न्यूनतम करने की आवश्यकता है। इस प्रक्रिया के लिए आप एक आधार के रूप में उपयोग कर सकते हैं एक छोटा सा हेड- मॉड्यूल है - बस यह सुनिश्चित करें कि आप इसमें सुरक्षा छेदों को कस लें, डिफ़ॉल्ट रूप से इसका बहुत असुरक्षित - लेआउट क्या आप को संभाल सकता है / लोड नहीं कर सकता है पर कोई प्रतिबंध नहीं है
हर बार जब मैगेंटो बूटस्ट्रैप को लोड किया जाता है, तो यह लगभग 200ms के प्रदर्शन के दंड पर आता है - इससे पहले कि यह एक संग्रह को भी लोड करता है / किसी ब्लॉक आदि को रेंडर करता है। डायनेमिक कंटेंट के लिए वार्निश + ईएसआई का उपयोग करते हुए धीमी पृष्ठ लोड बार, वार्निश को दरकिनार करने और मैगेंटो से सीधे अनुरोध पारित करने की तुलना में।
तो वास्तव में ईएसआई के प्रभावी ढंग से उपयोग करने के लिए, आपको एक ही अनुरोध में कई अनुरोधों को संयोजित करने में सक्षम होना चाहिए।
उदाहरण के लिए, 20 उत्पादों को सूचीबद्ध करने वाले एक श्रेणी दृश्य पृष्ठ को सटीक स्टॉक स्तर दिखाने की आवश्यकता है। इसलिए आप पृष्ठ पर प्रत्येक ब्लॉक के लिए ईएसआई का उपयोग करते हैं। यह 20x ईएसआई स्टॉक अनुरोध होगा। जब तक स्टॉक अनुरोध बहुत हल्के होते हैं, उनमें से 20x एक साथ चल रहे होते हैं, प्रदर्शन को कुचल देते हैं। तो इसके बजाय, आप 20 उत्पादों के पूरे ब्लॉक / संग्रह की सेवा कर सकते हैं और बस 1x अनुरोध प्राप्त कर सकते हैं। लेकिन संग्रह को लोड और रेंडर करना शायद वैसे भी पृष्ठ का सबसे धीमा तत्व है - इसलिए आपने बहुत कुछ हासिल नहीं किया है।
ईएसआई का प्रभावी ढंग से उचित योजना और निष्पादन की आवश्यकता है, या आपके पास वार्निश का उपयोग नहीं करने की तुलना में एक धीमी साइट होगी।
कैश-प्रति-उपयोगकर्ता
फिर उपयोगकर्ता-विशिष्ट कैश का उपयोग करने का विकल्प है। यह एक बुरा विचार है जब तक आपको बहुत कम ट्रैफ़िक वाली साइट नहीं मिली है। आपकी हिट दर भयानक रूप से कम होगी - जैसा कि वे पहले से ही कर चुके हैं उसी पृष्ठ पर आने वाले आगंतुक पर बाधाएं बहुत कम हैं। और प्रत्येक ग्राहक के लिए, वह 6Kb पृष्ठ आपके वार्निश स्टोरेज बिन में अधिक से अधिक जगह घेरेगा।
उदाहरण के लिए, यदि आपने वार्निश को 1GB आवंटित किया है। एक विशिष्ट साइट के साथ जहां उपयोगकर्ता प्रति पृष्ठ 8 पृष्ठ देखते हैं, उन पृष्ठों में से औसतन 6 पृष्ठ अद्वितीय होंगे। इस प्रकार, प्रति 1MB संग्रहण में 28 आगंतुक हैं। फिर आपकी छवियों, सीएसएस और जेएस में कारक - ये (शुक्र है) सामान्य होंगे, लेकिन फिर भी आपके उपलब्ध भंडारण के 7-800MB के अच्छे हिस्से पर कब्जा कर लेंगे। यह आपको 200 एमबी स्टोरेज के साथ छोड़ देता है, 5,600 यूनिक विजिटर्स के लिए पर्याप्त कैश।
खैर, मुझे परवाह नहीं है, मुझे सिर्फ वार्निश चाहिए
ठीक है, फिर आपको निम्नलिखित कार्य करने होंगे:
- वार्निश से पहले बैठने के लिए एक एसएसएल टर्मिनेटर स्थापित करें (जैसे। स्टड / पाउंड / नेग्नेक्स)
- सर्वर पर वार्निश स्थापित करें
- सुनिश्चित करें कि आप
X-Forwarded-For
सही तरीके से कॉन्फ़िगर करें
- अपने स्टोर पर वार्निश मॉड्यूल स्थापित करें
- तृतीय पक्ष एक्सटेंशन को बाहर करने के लिए अपने वार्निश VCLs सेट करें
जैसा कि पहले 3 अंक इस उत्तर के दायरे से परे हैं, मैं इसे खुद को संभालने के लिए छोड़ दूँगा। पॉइंट 4 बच्चों का खेल है और पॉइंट 5 के साथ - पढ़ना जारी रखें।
वार्निश कार्यान्वयन के बारे में सबसे महत्वपूर्ण बात यह सुनिश्चित करना है कि आप कभी भी सामग्री को कैश न करें जिसे कभी भी कैश नहीं किया जाना चाहिए।
उदाहरण के लिए।
- भुगतान गेटवे कॉलबैक
- कार्ट अवलोकन
- ग्राहक मेरा खाता अवलोकन
- चेकआउट (और संबंधित अजाक्स कॉल)
आदि।
कोर मैगेंटो यूआरएल के लिए, यूआरआई की काफी मानक सूची है जिसे आप वार्निश में बच सकते हैं:
admin|checkout|customer|catalog/product_compare|wishlist|paypal
लेकिन आपको किसी ऐसे कस्टम / थर्ड पार्टी एक्सटेंशन पर भी विचार करने की जरूरत है, जिसमें आप कस्टम रूट, राउटर और नेमस्पेस भी चला रहे हों। दुर्भाग्यवश, यह जानने का आसान तरीका नहीं है कि इन एक्सटेंशनों के URL क्या कैश किए जा सकते हैं। इसलिए आपको केस-बाय-केस आधार पर प्रत्येक का मूल्यांकन करने की आवश्यकता है।
एक नियम के रूप में, जब भी हम वार्निश को कॉन्फ़िगर कर रहे हैं, हम संबंधित मार्गों, राउटरों और नामस्थानों की पहचान करके शुरू करेंगे जो वे वहां से जा सकते हैं और वहां से जा सकते हैं। हम इसे SSH के माध्यम से करते हैं:
grep -Eiroh "<frontName>.*</frontName>" community | sed "s/<frontName>//gI;s#</frontName>##gI" | sort -u
grep -A10 -ir "<rewrite>" community | grep "<from>"
grep -A5 -ir "<routers>" community
grep -Eiroh "<frontName>.*</frontName>" local | sed "s/<frontName>//gI;s#</frontName>##gI" | sort -u
grep -A10 -ir "<rewrite>" local | grep "<from>"
grep -A5 -ir "<routers>" local
यह आपको URL की निश्चित सूची नहीं देगा - लेकिन यह आपको निश्चित रूप से एक स्टार्टर देगा।
हम इस बात पर ज़ोर नहीं दे सकते कि कैश कंटेंट को कैश न करना कितना ज़रूरी है। परिणाम भयावह हो सकते हैं।
संक्षेप में
किसी भी अन्य Magento सर्वर प्रदर्शन अनुकूलन के साथ के रूप में, कार्यान्वित और सही ढंग से देखते वास्तव में लाभ प्राप्त कर सकते हैं। लेकिन केवल सॉफ्टवेयर को ठीक से कॉन्फ़िगर किए बिना गिराने से यह न केवल आपके स्टोर को तेज बनाने वाला है, बल्कि संभावित रूप से धीमा, अधिक असुरक्षित और कम विश्वसनीय है।