हम बस - बिल्कुल नहीं। कभी। हम इसे बार-बार कहेंगे लेकिन
कैशिंग! = प्रदर्शन
आपकी साइट की जरूरत है (कि इस तथ्य के लिए या वार्निश) पांचवें वेतन आयोग के अलावा बिना तेजी से किया जाना है। हमेशा एक ऐसा समय आने वाला है जब सामग्री प्राइमेड नहीं है (ऊपर का परिदृश्य)।
एक अनलोड किए गए स्टोर पर, FPC के साथ पृष्ठ लोड बार गैर-FPC की तुलना में बहुत अधिक प्रभावशाली नहीं होना चाहिए; Magento < 400ms
मानक कैश पर (श्रेणी / उत्पाद / खोज पृष्ठों पर) पृष्ठ लोड समय में काफी खुशी से सक्षम है । FPC इसे नीचे लाएगी < 80ms
- लेकिन केवेट के साथ आता है।
- स्टॉक / मूल्य की जानकारी अमान्य या TTL समाप्ति तक पुरानी है
अमान्य या TTL समाप्ति तक नई आइटम / अधिक प्रासंगिक खोज पुराना है
आदि।
एफपीसी (या वार्निश) पर निर्भरता एक बुरा विचार क्यों है
यदि आप लगातार यह सुनिश्चित करना चाहते हैं कि कैश मैन्युअल रूप से बनाए गए हैं, तो कुछ कारण हैं
- आपके पास कैश को रखने के लिए पर्याप्त प्राकृतिक फुटफॉल नहीं है (देखें 'जहां एफपीसी उपयोगी है')
- आपकी साइट उनके बिना बहुत धीमी है
आप सब कुछ कैश नहीं कर सकते
यदि आप सिर्फ 5 श्रेणियों के साथ एक स्टोर लेते हैं, तो 2 स्तर गहरे, 5 फ़िल्टर करने योग्य गुण, 5 विशेषता विकल्प प्रत्येक और 1000 उत्पाद; यह संभव संयोजन का एक बहुत कुछ है।
25 विकल्पों में से चुनने के लिए, एक पंक्ति में 5 बार तक उठाते हैं - मैं कोई सांख्यिकीविद् नहीं हूं , लेकिन मुझे पता है कि ... (विशेषता विकल्पों की संख्या पूरी तरह से कम नहीं होती है)
25 possible URLs on the first selection
20 possible URLs on the second selection
15 possible URLs on the third selection
10 possible URLs on the fourth selection
5 possible URLs on the fifth selection
5^5 = 3,125 possible combinations (for top level categories)
5^4 = 625 possible combinations (for 2nd level categories)
ठीक है, ऊपर एक संभावित परिदृश्य नहीं है, जैसा कि मैं कल्पना करता हूं, 3 क्लिक के भीतर - उपलब्ध उत्पादों की संख्या ग्राहक को उनके उत्पाद को खोजने के लिए पर्याप्त रूप से कम हो जाती। यहां तक कि अगर यह थे ...
25 possible URLs on the first selection
10 possible URLs on the second selection
3 possible URLs on the third selection
5^3 = 125 possible URL combinations
तब के समय के अनुसार 5 श्रेणियां, यानी 625 यूआरएल। इस स्तर पर, हम एक छोटे कैटलॉग के बारे में बात कर रहे हैं, और सभी उत्पाद URL को पूरी तरह से अनदेखा कर रहे हैं।
हम इस तथ्य में भी शामिल नहीं हैं कि यदि आपने श्रेणियों को नेस्टेड कर दिया है is_anchor
, तो इसकी तेजी से वृद्धि हो सकती है।
इसलिए पृष्ठों की उस मात्रा को क्रॉल करने के लिए - आपको या तो यह उम्मीद है कि आपके पेज का लोड समय अच्छा है और इसके साथ शुरू करने के लिए कम है, ताकि यह एक त्वरित हल्की प्रक्रिया हो (इस प्रकार क्रॉल के उद्देश्य को हराना) - या आपके पास TTL समाप्त होने से पहले इसे पूरा करने के लिए पर्याप्त समय।
यदि आपके पृष्ठ में 0.4s का पृष्ठ लोड समय था और आपके पास 8 कोर CPU था - तब ...
625 * 0.4 = 250 / 8 = 31 seconds
0.5 मिनट, बुरा नहीं है - लेकिन आपको लगता है कि आपके पास 2s पृष्ठ लोड समय था
625 * 2 = 1250 / 8 = 156 seconds
लेकिन अगर आपने अधिकतम संभव परिदृश्य लिया
3,750 * 2 = 7,500 / 8 = 937 seconds ~ 15 minutes
तो यह आपका उत्पादन सर्वर है, 15 मिनट के लिए 100% सीपीयू लोड के तहत। आप क्रॉल गति को उस टीटीएल के अनुपात में कम कर देंगे जो आप चाहते हैं।
इसलिए यदि आप चाहते हैं कि सामग्री में 3600 टीटीएल हो, तो क्रॉल 4 गुना धीमा हो सकता है - यानी। केवल 25% CPU क्रॉल को समर्पित है। इस श्रेणी की सामग्री को रखने के लिए बहुत सारे संसाधन हैं - हमने इस स्तर पर उत्पादों, खोज शब्दों या अतिरिक्त स्टोर विचारों में भी तथ्य नहीं किया है
वास्तव में, catalog_url_rewrites
तालिका में संयोजनों के सरासर आकार (जो कि स्तरित नेविगेशन से मापदंडों में फैक्टरिंग भी नहीं है) को देखते हुए, यह अनुमान लगाएगा कि आप कितने URL को क्रॉल करने की आवश्यकता को समाप्त कर सकते हैं।
हर दुकान निश्चित रूप से अलग होगी, लेकिन जो मैं घर पर हमला करने की कोशिश कर रहा हूं वह यह है कि साइट को प्राइम एफपीसी के लिए क्रॉल करना व्यावहारिक नहीं है। बस यह सुनिश्चित करें कि आपका स्टोर शुरू करने के लिए तेज है ।
जहां एफपीसी उपयोगी है
जहां एफपीसी का लाभ खेलने में आता है, वह एक भारी भरकम दुकान पर है - जहां आपके पास यातायात का उच्च स्तर है और कैश स्वाभाविक रूप से और लगातार सरासर फुट-फॉल द्वारा प्राइम किए जाते हैं।
एफपीसी तब आमतौर पर अनुरोधित सामग्री पर बुनियादी ढांचे के ओवरहेड्स को कम करके खेल में आता है - मैगेंटो बैकएंड पर उन दोहराया कॉलों में कटौती।
इसलिए हमने पाया है कि जब आप बहुत अधिक ट्रैफ़िक स्तर प्राप्त करते हैं तो एफपीसी को तैनात करना बहुत अच्छा होता है - पृष्ठ लोड समय को कम करने के लिए नहीं - बल्कि संसाधन उपयोग को कम करने के लिए।
कौन परवाह करता है, मैं अभी भी क्रॉल करना चाहता हूं
ठीक है, तो आपको दो विकल्प मिले हैं
- एक टेम्पलेट से क्रॉल (उदाहरण। साइटमैप)
- पृष्ठ द्वारा लिंक पृष्ठ निकालें और प्रत्येक को क्रॉल करें
और इन दोनों को करने के लिए कई उपयोगिताओं हैं, ये कुछ हैं जिनके बारे में मुझे पता है
- दाना-perftest
- HTTrack
- Nutch
- Sphider
- Crawler4j
मैज-पेरफ़ेस्ट का उपयोग करना
आप अपने स्टोर को Mage-Perftest के साथ बहुत आसानी से क्रॉल कर सकते हैं, पहले इसे डाउनलोड करें
wget http://sys.sonassi.com/mage-perftest (64bit) OR
wget http://sys.sonassi.com/mage-perftest-i386 (32bit)
chmod +x http://sys.sonassi.com/mage-perftest*
फिर Magento के साइटमैप का उपयोग करके क्रॉल प्रक्रिया को परिभाषित करें (आप किसी भी URL का साइटमैप बनाकर इसे अनुकूलित कर सकते हैं, बशर्ते कि यूआरएल <loc></loc>
टैग में लिपटे हों )। निम्न आदेश साइटमैप फ़ाइल से सभी URL को पढ़ेगा, फिर 1440 मिनट (1 दिन) के दौरान URL को केवल क्रॉल (PHP) करेगा। यदि सर्वर 20% CPU या 2 के लोड औसत से अधिक है - तो क्रॉल अस्थायी रूप से विराम देगा।
./mage-perftest -u www.example.com -s www.example.com/sitemap.xml -r auto -b -d 1440 -z -a 20 -l 2
यदि आपके पास 1000 URL हैं, तो 1 दिन में क्रॉल किया जाता है, जो लगभग अनुमानित होगा। 1 अनुरोध हर 86 सेकंड (ओं) ~ 0.011 आरपीएस का लक्ष्य