आज मुझे WeChat पर एक मित्र से एक संदेश प्राप्त हुआ, जिसमें मुझे याद दिलाया गया कि ब्लॉग नहीं खोला जा सकता। निश्चित रूप से, इसे खोलने के बाद, यह सीधे प्रदर्शित हुआ "आपकी साइट में एक घातक त्रुटि आई है।" मूल रूप से यह निष्कर्ष निकाला जा सकता है कि प्लग-इन को दोष देना है।
जांच के बाद, यह पाया गया कि PHP त्रुटि थी: "अनकॉट रेडिसएक्सेप्शन: मेमोरी का उपयोग करते समय ओओएम कमांड की अनुमति नहीं है", यह दर्शाता है कि रेडिस मेमोरी में डेटा नहीं लिख सकता है, भले ही सर्वर पुनरारंभ हो। अंतिम समाधान रेडिस कॉन्फ़िगरेशन को समायोजित करना और डिफ़ॉल्ट मेमोरी आकार को बढ़ाना है।
यह आलेख इस प्रक्रिया को साझा करेगा कि आपकी वर्डप्रेस साइट में किसी घातक त्रुटि का निवारण कैसे किया जाए। यहां वर्डप्रेस वेबसाइट निर्माण के बारे में और भी लेख हैं:
- वर्डप्रेस ऑल-राउंड और सुपर संगत कोड हाइलाइटिंग प्लग-इन एनलाइटर-डब्ल्यूपी आवश्यक प्लग-इन
- पोएडिट, वर्डप्रेस थीम और प्लग-इन को चीनी बनाने के लिए एक आवश्यक उपकरण - स्वचालित रूप से .Po और .Mo फ़ाइलें उत्पन्न करता है
- वर्डप्रेस ऑन-साइट सर्च-डॉकर के रूप में इलास्टिक्स खोज का उपयोग करें, इलास्टिक सर्च, किबाना और आईके वर्ड सेगमेंटर इंस्टॉल करें
1. WP डिबग मोड चालू करें
जब आपके वर्डप्रेस में कोई त्रुटि आती है, तो घबराएं नहीं, वर्डप्रेस के डिबग मोड को खोलें और PHP त्रुटियों को कॉल करें विधि संदर्भ: वर्डप्रेस त्रुटि निदान मोड - रिक्त WP पृष्ठों, सर्वर 500 त्रुटियों और प्लग-इन संघर्षों का इलाज करने में माहिर है।
2. WP घातक त्रुटियाँ खोजें
वर्डप्रेस के डिबग मोड को चालू करने के बाद, वेब पेज निम्नानुसार PHP त्रुटियां प्रदर्शित करेगा:
घातक त्रुटि: ध्यान में न आया RedisException: मेमोरी का उपयोग करते समय OOM कमांड की अनुमति नहीं है > 'maxmemory' /xxx/wzfou.com/wp-content/plugins/w3-total-cache/Cache_Redis.php:68 Stack में। ट्रेस: #0 /xxxx/wzfou.com/wp-content/plugins/w3-total-cache/Cache_Redis.php(68): Redis->setex('w3tc_1987146988…', 180, 'a:2:{s: 7:"conte...') #1 /xxxx/wzfou.com/wp-content/plugins/w3-total-cache/ObjectCache_WpObjectCache_Regular.php(293): W3TCCache_Redis->set('0optionsallopti...', ऐरे, 180) # 2 /xxx/wzfou.com/wp-content/plugins/w3-total-cache/ObjectCache_WpObjectCache_Regular.php(388): W3TCObjectCache_WpObjectCache_Regular->set('alloptions', Array, 'options', 0) #3 /xxx/wzfou ... सामग्री/ऑब्जेक्ट-cache.php(95): W3TCObjectCache_WpObjectCache->जोड़ें('alloptions', Array, 'options', 0) #5 /xxxx/wzfou.com/wp-includes/option.php(258): में /xxxx/wzfou.com/wp-content/plugins/w3-total-cache/Cache_Redis.php ऑन लाइन 68
त्रुटि संदेश: "अनकॉट रेडिसएक्सेप्शन: मेमोरी > 'मैक्समेमोरी' का उपयोग करते समय OOM कमांड की अनुमति नहीं है। /xxx/wzfou.com/wp-content/plugins/w3-total-cache/Cache_Redis.php में", जाहिर है क्योंकि Redis चालू है ऑब्जेक्ट कैशिंग के कारण त्रुटि हुई. रेडिस कॉन्फ़िगरेशन देखा:
Root@localhost:~# redis-cli
127.0.0.1:6379> जानकारी मेमोरी
# मेमोरी
प्रयुक्त_मेमोरी:250161160
प्रयुक्त_मेमोरी_मानव:238.57M
प्रयुक्त_मेमोरी_आरएसएस:274608128
प्रयुक्त_मेमोरी_आरएसएस_मानव:261.89 M
प्रयुक्त_मेमोरी_पीक:254227888
प्रयुक्त_मेमोरी_पीक_मानव: 242.45M
प्रयुक्त_मेमोरी_पीक_पर्क:98.40%
प्रयुक्त_मेमोरी_ओवरहेड:7712830
प्रयुक्त_मेमोरी_स्टार्टअप:803088
प्रयुक्त_मेमोरी_डेटासेट:2424 48330
प्रयुक्त_मेमोरी_डेटासेट_perc:97.23%
आवंटनकर्ता_आवंटित :250366144
आवंटक_सक्रिय:260894720
आवंटक_निवासी:268197888
कुल_सिस्टम_मेमोरी:2111430656
कुल_सिस्टम_मेमोरी_मानव:1.97जी
प्रयुक्त_मेमोरी_लुआ:37888
प्रयुक्त_मेमोरी_लुआ_मानव:37.00K
प्रयुक्त_मेमोरी_स्क्रिप्ट:0
प्रयुक्त_मेमोरी_स्क्रिप्ट्स_ह्यूमन :0बी<पीएच22>नंबर_ऑफ_कैश्ड_स्क्रिप्ट्स:0<पीएच23>मैक्समेमोरी:2510000000<पीएच24>मैक्समेमोरी_ह्यूमन:239.37एम<पीएच25>मैक्समेमोरी_पॉलिसी:नोएविक्शन<पीएच26>आवंटक_फ्रैग_अनुपात:1.04<पीएच27>आवंटक_फ्रैग_बाइट्स:1 0528576
आवंटित ator_rss_ratio:1.03
आवंटक_rss_बाइट्स: 7303168
rss_overhead_ratio:1.02
rss_overhead_bytes:6410240
mem_fragmentation_ratio:1.10
mem_fragmentation_bytes:24487992
mem_not_counted_for_evict:0
mem_replication_back लॉग:0
mem_clients_slaves:0
mem_clients_normal:390678
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
127.0.0.1:6379>
इसे कॉन्फ़िगरेशन से देखा जा सकता है: अधिगृहीत मेमोरी प्रयुक्त_मेमोरी_ह्यूमन:238.57एम, रेडिस के लिए सिस्टम द्वारा अनुमत अधिकतम मेमोरी है: मैक्समेमोरी_ह्यूमन:239.37एम, यह वास्तव में व्याप्त है और स्थान समाप्त हो गया है।
3. अपर्याप्त रेडिस मेमोरी की समस्या का समाधान करें
यदि आप Oneinstack का उपयोग कर रहे हैं, तो आप Redis के कॉन्फ़िगरेशन को संशोधित करने के लिए निम्न विधि का उल्लेख कर सकते हैं। वैसे, आप डिफ़ॉल्ट मेमोरी को बढ़ाने के लिए मेम्केच्ड के कॉन्फ़िगरेशन को भी संशोधित कर सकते हैं:
#Redis默认端口:6379 #Memcached默认端口:11211 #默认监听地址:127.0.0.1 #调整Redis最大内存大小? vi /usr/local/redis/etc/redis.conf maxmemory 1024000000#单位字节,默认1G,可调整 service redis-server restart#重启生效 #增加Memcached最大内存大小? vi/etc/init.d/memcached CACHESIZE=256 #单位M,默认256M,可调整 service memcached restart#重启生效
उन्मूलन नीति सेट करें: maxmemory-policy volatile-lru
कई अन्य उन्मूलन रणनीतियाँ नीचे वर्णित हैं:
noeviction
डिफ़ॉल्ट नीति
बेदखल नहीं किया गया
जब रेडिस के उपयोग के लिए पर्याप्त मेमोरी नहीं है, तो राइट कमांड निष्पादित करते समय एक अपवाद की सूचना दी जाएगी: मेमोरी का उपयोग करते समय redis.exceptions.ResponseError, OOM कमांड की अनुमति नहीं है> 'मैक्समेमोरी'
अस्थिर-एलआरयू
समाप्त हो चुकी कुंजियों के लिए, एलआरयू उन्मूलन रणनीति निष्पादित करें (कम से कम हाल ही में उपयोग किए गए डेटा को हटा दें)
यदि कोई समाप्त कुंजी नहीं है, तो मेमोरी अपर्याप्त होने पर राइट कमांड निष्पादित करते समय एक अपवाद की सूचना दी जाएगी: redis.exceptions.ResponseError, मेमोरी का उपयोग करते समय OOM कमांड की अनुमति नहीं है > 'मैक्समेमोरी', नोइविक्शन पॉलिसी के समान
allkeys-lru
सभी कुंजियों के लिए lru निष्पादित करें
कुछ कुंजियों को हटाने के लिए कुछ एल्गोरिदम को प्रतिबंधित करने का कोई तरीका नहीं है।
यदि आपके एप्लिकेशन को कुछ डेटा बनाए रखने की आवश्यकता है, तो कृपया ऑलकीज़-एलआरयू रणनीति का उपयोग न करें
अस्थिर-यादृच्छिक
समाप्त हो चुकी कुंजियों के लिए, निष्कासित करने के लिए बेतरतीब ढंग से एक कुंजी का चयन करें
सभी कुंजी-यादृच्छिक
सभी कुंजियों के लिए, निष्कासन के लिए यादृच्छिक रूप से एक कुंजी का चयन करें
अस्थिर-टीटीएल
समाप्त हो चुकी कुंजियों में से, सबसे छोटी ttl मान वाली कुंजियों को पहले बाहर निकाला जाएगा।
4. सारांश
वर्डप्रेस अनुकूलन त्वरण एक सामान्य विषय है सर्वोत्तम परिणाम प्राप्त करने के लिए, हमें अक्सर अपने सर्वर की वास्तविक कॉन्फ़िगरेशन के आधार पर अनुकूलन रणनीति को उचित रूप से समायोजित करने की आवश्यकता होती है।
ब्लॉग के अनुकूलन और त्वरण के संबंध में, मैंने एक सारांश विषय लिखा है: ब्लॉग की मुख्य अनुप्रयोग प्रौद्योगिकियाँ और सहायक सुविधाएँ - ब्लॉग की वेबसाइट और सर्वर अनुकूलन विधियों का सारांश।