मैं अपनी Drupal7 साइट के प्रदर्शन में सुधार कैसे करूँ? [बन्द है]


10

किसी ऐसे व्यक्ति के लिए, जो द्रुपाल के लिए नया है, मैं देखता हूं कि Drupal Caching पर कई संसाधन उपलब्ध हैं, लेकिन मुझे यकीन नहीं है कि उनमें से कौन सा उपयोग करना है।


1
हम इस पर चर्चा कर सकते हैं कि क्या हम मेटा पर इसके लिए एक विहित प्रश्न चाहते हैं, लेकिन मुझे अभी भी लगता है कि यह बहुत व्यापक है। और प्रदर्शन में सुधार बहुत संदर्भ के प्रति संवेदनशील हो सकता है और वैक्यूम में नहीं किया जा सकता है।
mpdonadio

जवाबों:


26

ये मेरे अनुभवों से नोट हैं और दूसरों के अनुभव से भिन्न हो सकते हैं। मैं मुख्य रूप से LAMP स्टैक का उपयोग करता हूं और अपने सुझावों में समान माना है।

आमतौर पर मैं कैशिंग के नियमों का पालन करता हूं।

  1. प्रक्रिया एक बार कई बार उपयोग करें।
  2. जब संभव हो बासी डेटा के साथ जियो
  3. स्पष्ट रूप से कैश साफ़ करें और इसे बहुत विशिष्ट रखें।
  4. जब संभव हो स्टैक में निम्नतम स्तर पर परिवर्तन करें। LAMP - DCCc: Linux, Apache, Mysql, PHP, Drupal Core, Contrib और कस्टम मॉड्यूल।

एक ड्रुपल साइट के प्रदर्शन में सुधार (जटिलता के बढ़ते क्रम में)

  1. कोर अपडेटेड, कंट्रिब मॉड्यूल और थीम को अपडेट रखें। हाँ यह मायने रखता है।

  2. अपने सर्वर पर APC स्थापित करें। (सुस्ती से सुझाव के आधार पर शीर्ष पर ले जाया गया)

  3. पृष्ठ कैशिंग: व्यवस्थापक / कॉन्फ़िगरेशन / विकास / प्रदर्शन न्यूनतम कैश जीवनकाल और कैश्ड पृष्ठों की समाप्ति के बीच अंतर

  4. ब्लॉक कैशिंग https://drupal.org/project/blockcache_alter सभी ब्लॉकों के लिए कैशिंग विकल्प।
  5. जावास्क्रिप्ट और सीएसएस फ़ाइलें एकत्र करें - फ्रंट एंड इम्प्रूवमेंट https://www.drupal.org/project/advagg
  6. अनावश्यक मॉड्यूल को अक्षम करें। प्रत्येक मॉड्यूल उस कोड की मात्रा में जोड़ता है जो पृष्ठ लोड के लिए उपलब्ध होना चाहिए। और यह लुकअप की संख्या भी बढ़ाता है। जहाँ तक संभव हो, कई प्रकार के मॉड्यूल के स्थान पर एक जेनेरिक मॉड्यूल का उपयोग करें जो विशिष्ट कार्य करता है।
  7. कैशे दृश्य सामग्री - दृश्य https://www.drupal.org/project/views_content_cache के लिए सामग्री कैशिंग
  8. DB लॉगिंग अक्षम करें - https://drupal.org/project/syslog_ng का उपयोग करें
  9. 404 त्रुटियां कम करें - http://www.brokenlinkcheck.com/
  10. फास्ट 404 जवाब - https://drupal.org/project/fast_404 - सर्वर स्तर पर हैंडलिंग का प्रयास करें।
  11. क्लाइंट साइड मान्यताएँ - https://www.drupal.org/project/clientside_validation
  12. संपीडन छवि - https://www.drupal.org/project/imageapi_optimize
  13. छवियों का आलसी लोड हो रहा है - अनावश्यक छवियों को लोड न करें - https://www.drupal.org/project/lazyloader
  14. स्प्राइट शीट्स का उपयोग करें - https://www.drupal.org/project/spritesheets

  15. न्यूनतम कैश लाइफ टाइम वैल्यू को अधिक संख्या में सेट करें और विशिष्ट पृष्ठों के लिए कैश को साफ़ करने के लिए कैश क्लियरिंग मॉड्यूल का उपयोग करें - जब भी मैं एक नोड को संपादित / अपडेट करता हूं अनाम उपयोगकर्ता के लिए सभी पेज कैश खो जाते हैं

  16. प्रश्नों को देखने के लिए डेवेल मॉड्यूल का उपयोग करें।
  17. रिवरिट दृश्य दृश्य / यदि इसके ओवरकिल होने पर दृश्य से बचें।
  18. XHProf - https://www.drupal.org/project/XHProf
  19. एफपीएम, एचएचवीएम।
  20. DB प्रोफाइलिंग और ट्यूनिंग - https://www.drupal.org/project/dbtuner
  21. बूस्ट का उपयोग करें , यदि आवश्यक न हो तो बूटस्ट्रैप डीबी न करें। https://drupal.org/project/boost अधिकांश छोटी से मध्यम साइटों के लिए बूस्ट काफी अच्छा है और आपको इसके विपरीत या इसके विपरीत की आवश्यकता नहीं हो सकती है।
  22. CDNs का उपयोग करें - https://www.drupal.org/project/cdn इसकी स्थापना आसान।
  23. यदि आपके कैश टेबल में बड़े पैमाने पर मेम्केड का उपयोग होता है - यदि आप मेम्केड को स्थापित कर सकते हैं और इसके लिए रैम सेट कर सकते हैं, तो यह उतना जटिल नहीं है जितना कि लगता है।
  24. Etags - Etags को ठीक से कॉन्फ़िगर करें। https://developer.yahoo.com/blogs/ydnfiveblog/high-performance-sites-rule-13-configure-etags-7211.html
  25. रिवर्स प्रॉक्सी सर्वर का उपयोग करें - वार्निश (कम से कम संपत्ति के लिए)। यदि आपके अधिकांश उपयोगकर्ता अनाम हैं तो बहुत मदद करता है।
  26. संपीड़ित स्थानांतरण - gzip संपीड़न सक्षम करें
  27. जिंदा रखें - जहां संभव हो, लगातार कनेक्शन का उपयोग करें।
  28. प्रगतिशील जेपीईजीएस -
  29. कोड में आना - ईटन का ब्लॉग कमाल का है। http://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7
  30. कैशे वार्मिंग को लागू करें - https://www.drupal.org/project/cache_warmer - कैशे पृष्ठों को अंतिम उपयोगकर्ता द्वारा हिट करने से पहले वार्म करें।
  31. मास्टर स्लेव DB कॉन्फिगरेशन - https://www.drupal.org/project/autoslave आपके लिए एक सेट करना आसान बनाता है।
  32. डेटाबेस क्लस्टर - /programming/1163216/database-cluster-and-load-balancing
  33. लोड बैलेंसर्स - http://en.wikipedia.org/wiki/Load_balancing_(computing)
  34. ह्यूरिस्टिक कैश वार्मिंग का उपयोग करें - https://www.drupal.org/project/cache_graceful
  35. प्रमाणित उपयोगकर्ता कैशिंग - https://www.drupal.org/project/authcache

2
उत्कृष्ट उत्तर, लेकिन एक चीज जो दृढ़ता से मेरे पास है, वह यह है कि आपके पास शीर्ष पर एपीसी नहीं है। एपीसी तुच्छ रूप से जगह पाने में आसान है, नीचे-किनारे नहीं हैं, और लाभ वास्तव में बड़े हो सकते हैं। मुझे लगता है कि इसे शीर्ष पर जाना चाहिए। (शायद एक टिप्पणी के साथ कि यह PHP 5.5 के बाद की आवश्यकता नहीं है क्योंकि अनुकूलन अंततः एकीकृत हो गया)
सुस्ती

1
शायद कैशिंग के लिए सबसे आसान लाभ के बारे में भी कुछ उल्लेख करें? यदि आपकी साइट को ज्यादातर स्थिर सामग्री की आवश्यकता है (सभी उपयोगकर्ताओं के लिए पृष्ठ समान हैं, तो कोई लॉगिन नहीं है), तो वार्निश या बूस्ट सबसे बड़ा लाभ प्रदान करता है।
डोमिनिक वुडमैन

5

डेटाबेस परत महत्वपूर्ण है। मैं इसके कुछ हिस्सों और इस प्रस्तुति में मूल बातें शामिल करता हूं http://goo.gl/30yi39


बहुत बढ़िया प्रस्तुति मिकीटाउन। आप प्रदर्शन समर्थक हैं :)
गोकुल एनके

3

गोकुल के जवाब के साथी के रूप में यहां पर मैं यह सोचूंगा कि आप ड्रुपल में कैश करना चाहते हैं (जटिलता द्वारा आदेशित नहीं):

कैशिंग का अर्थ है बार-बार की गतिविधियों को तेज करना।

Drupal वेबसाइट में शामिल बड़ी दोहराई जाने वाली क्रियाएँ हैं:

  • एक वेबपेज कॉलिंग
  • वेब पेज बनाने के लिए PHP कोड चलाना
  • डेटाबेस से PHP कॉलिंग आइटम

एक पूरे वेबपेज को कैशिंग

सबसे बड़ा कैशिंग लाभ एक संपूर्ण वेबपृष्ठ को कैश करने का तरीका खोजने से है, जो कभी भी पीएचपी कोड को चलाने या डेटाबेस को कॉल किए बिना होता है।

आप इसे वार्निश या बूस्ट के साथ कर सकते हैं । जब कोई उपयोगकर्ता किसी पृष्ठ को कॉल करता है तो वे कभी भी गणना किए बिना पृष्ठ की एक प्रति लौटा देते हैं।

हालाँकि, यह काम नहीं करेगा यदि पृष्ठ के कुछ हिस्सों को अलग करना होगा (यानी उपयोगकर्ता लॉगिन और उनका नाम शीर्ष पर दिखाई देता है)।

आदेश में है कि काम करने के लिए आप Authcache में देखने की जरूरत है।

PHP कैशिंग

आप एपीसी के साथ PHP को कैश कर सकते हैं , या यदि आपके पास संस्करण 5.5 या अधिक है तो एक अलग कैश में बनाया गया है।

यह सर्वर साइड में किया गया है और इसका मतलब है कि आपके PHP कोड के विखंडन को याद रखा जाएगा। आप Drupal के लिए PHP कैशिंग कर रहे हैं, लेकिन आप Drupal के साथ तकनीकी रूप से बातचीत नहीं कर रहे हैं।

डेटाबेस कैशिंग

डेटाबेस से जानकारी हथियाने के लिए कॉल महंगा है।

सबसे सामान्य डेटाबेस कैशिंग तंत्र मेमकाच है

यह रैम में डेटाबेस ऑब्जेक्ट को कैश करता है, इसलिए हार्डड्राइव पर डेटाबेस ऑब्जेक्ट पर कॉल करने के बजाय, आप इसे रैम से खींचते हैं जो बहुत तेज है।


1
Redis भी एक बड़ा इन-मेमोरी कैश की दुकान, कम से कम मेम्कैश के साथ तुलनीय मेरे अनुभव में (हालांकि मेम्कैश शायद क्लस्टरिंग के साथ बाहर जीतता है) है
क्लाइव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.