साइट का प्रदर्शन, कैश ठीक से काम नहीं कर रहा है


8

यहां छवि विवरण दर्ज करें

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

यहां छवि विवरण दर्ज करें

मैं प्रदर्शन की जांच के लिए नए रेलिक का भी उपयोग कर रहा हूं । यह यह भी दर्शाता है कि डेटाबेस लोड अधिक है।

और my.cnf जानकारी।

यहां छवि विवरण दर्ज करें

जवाबों:


8

MySQL में अधिकतम पैकेट आकार के बारे में मेरी प्रस्तुति प्रस्तुति से स्लाइड # 85 , आपको उस मूल्य को बढ़ाने की आवश्यकता है; SET GLOBAL max_allowed_packet=33554432;या इसे कॉन्फ़िगरेशन फ़ाइल https://dev.mysql.com/doc/refman/5.7/en/packet-too-large.html के अंदर बदलें


वास्तव में उपयोगी उत्तर।
श्री जे।

3

अधिकतम अनुमत पैकेट आकार ऐसा होने का एक कारण हो सकता है, लेकिन मैं कई कारण देख सकता हूं कि यह इस मामले में शायद कुछ और है।

  1. आपके पास केवल कैश राइट्स नहीं हैं, आपके पास स्पष्ट कैश डिलीट भी हैं। एक विफल कैश लेखन केवल कैश राइट्स को दोहराने में परिणाम होगा और फिर कैश मिस हो जाएगा, लेकिन डिलीट नहीं।
  2. यह cache_bootstrap तालिका है। कुछ कैश हैं जो बड़े हो सकते हैं लेकिन वे आमतौर पर उस बिन से नहीं हैं।

इस पैटर्न का सबसे आम कारण चर_सेट () कॉल हैं जो हर पृष्ठ पर होते हैं। एक नज़र डालें कि वे कैश डिलीट कहां से आ रहे हैं, या तो xhprof के साथ, xdebug के साथ और एक ब्रेकपॉइंट सेट करने के लिए या एक debug_print_backtrace (DEBUG_BACKTRACE_NO_ARGS) जोड़कर। मुझे पूरा यकीन है कि आपको एक चर_सेट () कॉल दिखाई देगा।

समस्या यह है कि चर के लिए एक एकल वैश्विक कैश है। प्रत्येक कैश एक कैश डिलीट में परिणाम लिखता है और अगले अनुरोध को पूरी {variables}तालिका को पढ़कर कैश में वापस लिखना होगा।

कई डेवलपर्स को इसके बारे में जानकारी नहीं है और वे चर / फ़ाइल (सीधे) को एक .module फ़ाइल या किसी अन्य जगह जिसे हर अनुरोध पर निष्पादित किया जाता है, कॉल करके "मूल्यों को सुनिश्चित करना" जैसे काम कर रहे हैं।


हाँ .. यह सच है कि अधिकांश डेवलपर भी मुझे चर__ () तथ्य के बारे में नहीं जानते, जिसकी आपने चर्चा की थी। और मुझे भी debug_print_backtrace (DEBUG_BACKTRACE_NO_ARGS) के बारे में पता है। उसके लिए धन्यवाद। :)
श्री जे।

3

यह सिर्फ एक परिकल्पना है लेकिन अगर आपका बूटस्ट्रैप कैश हर पेज लोड पर पुनर्निर्मित होता है तो ऐसा हो सकता है कि आपके कुछ मॉड्यूल मॉड्यूल फ़ोल्डर में गायब हैं लेकिन फिर भी सिस्टम टेबल में मौजूद हैं। प्रत्येक पृष्ठ पर लोड ड्रुपल इसे खोजने और बूटस्ट्रैप_केच को फिर से बनाने की कोशिश करता है।

बूटस्ट्रैप ऑप्टिमाइज़र मॉड्यूल आज़माएं , यह ऐसे रिकॉर्ड खोजने और उन्हें हटाने में मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.