सवाल कौन सा PHP (ओपोड) कैश का उपयोग करना चाहिए और क्यों?


मैं कुछ PHP (ओपोड) कैश जैसे एपीसी, एक्स कैश, मेमकेचे, ई एक्सेलेरेटर इत्यादि के बारे में सुनता रहता हूं।

लेकिन मैं कभी नहीं समझ सकता कि एक को चुनने के बारे में कैसे जाना है। प्रदर्शन लाभ के अलावा, जो एक कैशिंग प्रणाली वितरित की जाती है, जो अन्य कारकों को चिंता का विषय होना चाहिए।

जैसा कि आप कहेंगे कि एक्स कैश सिस्टम वाई से बेहतर है? मैं रिश्तेदार प्रदर्शन लाभ के बारे में कम चिंतित हूं। किसी भी दो प्रणालियों के बीच छोटे अंतर कम मायने रखता है।

यदि मेरे प्रश्न का सामान्य उत्तर संभव नहीं है, तो यहां कुछ पॉइंटर्स हैं। मैं Mediatemple (रूट पहुंच के साथ) के साथ समर्पित वीपीएस का उपयोग करें। रैम 512 एमबी (भौतिक) + 400 एमबी (स्वैप) है मैं वर्डप्रेस और उसके चचेरे भाई वर्डप्रेस-एमयू और BuddyPress के बारे में चिंतित हूँ। हमारे कोड / साइट का 9 0% वर्डप्रेस परिवार में आते हैं।

कुछ मदद के लिए अग्रिम धन्यवाद।


42
2017-08-19 15:24


मूल




जवाब:


आपके द्वारा सूचीबद्ध उत्पादों को विभिन्न उद्देश्यों की सेवा मिलती है।

ओपीकोड कैश

इस पर देखा गया कई PHP एक्सेलेरेटर (OPCaches) हैं विकिपीडिया सूची। ओपन सोर्स उत्पादों के साथ आम है, वे सभी काफी समान हैं। XCache lighttp PHP त्वरक है, और जब आप HTTPd चला रहे हैं तो डिफ़ॉल्ट विकल्प है। यह अपाचे के साथ भी अच्छी तरह से काम करता है, हालांकि एपीसी थोड़ा सा "दूसरों के साथ अच्छी तरह से खेलता है" सामाजिक रूप से बोल रहा है, आधिकारिक रूप से PHP के हिस्से के रूप में समर्थित है, और आधिकारिक PHP वितरण के साथ चरण में जारी किया गया है।

मैंने अपने धीमे विकास के कारण usign eAccelerator को छोड़ दिया, और PHP की रिलीज के खिलाफ लगी हुई, और आधिकारिक धन्य स्थिति एपीसी समान प्रदर्शन के साथ प्रदान करता है।

ये उत्पाद आमतौर पर ड्रॉप होते हैं; कोई कोड तत्काल प्रदर्शन बढ़ावा नहीं बदलता है। बड़े कोडबेस (ड्रूपल, वर्डप्रेस) के साथ प्रदर्शन तक हो सकता है 3x बेहतर प्रतिक्रिया समय और स्मृति उपयोग को कम करते हुए।

डाटा कैशिंग

मेम्कैश थोड़ा अलग उत्पाद है - आप इसे एक के रूप में सोच सकते हैं हल्के कुंजी मूल्य प्रणाली यह हो सकता है कई सर्वरों के लिए स्केल किया गया। मेमकैच का समर्थन करने के लिए सॉफ़्टवेयर को बढ़ाया जाना है, और यह कुछ समस्याओं को दूसरों की तुलना में बेहतर हल करता है। यदि आपकी वेबसाइट पर रीयलटाइम स्टॉक मानों की एक सूची थी, तो आप अपनी वेबसाइट पर प्रदर्शित होने वाले वर्तमान मूल्य की निवासी सूची रखने के लिए मेमकैच का उपयोग कर सकते हैं। आप इसे अल्पकालिक पुन: उपयोग के लिए सत्र डेटा स्टोर करने के लिए उपयोग कर सकते हैं। आप इसे अन्य चीजों जैसे पूर्ण पृष्ठ कैश, या MySQL के प्रतिस्थापन के रूप में उपयोग नहीं करेंगे।

जैसे वर्डप्रेस एडॉन्स भी हैं WP-सुपर कैश जो वर्डप्रेस के प्रदर्शन में काफी सुधार कर सकता है (वास्तव में, WP-Super-Cache कई मामलों में स्थिर HTML आधारित साइटों को प्रतिद्वंद्वी बना सकता है)

संक्षेप में - अगर आप "इसे सेट करें और इसे भूल जाएं, अच्छी तरह से समर्थित उत्पाद" चाहते हैं तो मैं अत्यधिक एपीसी की सिफारिश करता हूं। 


32
2017-08-19 15:36



मेटा पर इस उत्तर पर चर्चा की जा रही है: meta.stackexchange.com/questions/15474/... - Brad Gilbert
भरें "[4]: http://" ठीक करना। - Brad Gilbert
सरस्टान एक टन धन्यवाद! आपके उत्तर ने न केवल मेरी समस्या हल की बल्कि मुझे कैशिंग दुनिया में और अधिक अंतर्दृष्टि प्राप्त करने में भी मदद की। मैं सिर्फ आपको एक और बात पूछना चाहता हूं। मैं पहले से ही wp-supercache का उपयोग कर रहा हूँ। एपीसी के साथ इसे गठबंधन करना अच्छा विचार है? क्या एपीसी प्रदर्शन में काफी सुधार करेगा? क्या एपीसी और डब्ल्यूपी-सुपरकैच एक साथ काम करेंगे? क्या मुझे उन दोनों की ज़रूरत है? या एपीसी डब्ल्यूपी-सुपर कैश अनावश्यक बना देगा? - rahul286
नोट: एपीसी डेटा कैशिंग और ओप-कोड कैशिंग दोनों करता है। - lo_fye
यह जवाब अब बहुत दिनांकित है। एपीसी को PHP के भविष्य के संस्करणों के लिए अपडेट करने की संभावना नहीं है, जिसे वी। 5.5 के बाद ज़ेंड के ऑप्टिमाइज़र और ऑपोड कैश (अब ओपेकैच के नाम से जाना जाता है) द्वारा प्रतिस्थापित किया गया है। हालांकि मैंने प्रदर्शन में काफी अंतर नहीं देखा है ( symcbean.blogspot.co.uk/2013/09/... ) ओपेकैच में डेटा समर्थन की कमी और मेमोरी रिकक्लेम की कमी के कारण कुछ लोगों के लिए काउंटर उत्पादक अपग्रेड कर सकते हैं। - symcbean


एक अच्छा जवाब स्टैक ओवरफ्लो पर पोस्ट किया गया था जो आपके प्रश्न का उत्तर अच्छी तरह से उत्तर देता है।

https://stackoverflow.com/questions/28716/which-php-opcode-cacher-should-i-use-to-improve-performance


7
2017-08-19 15:39



Stackoverflow पर यह वास्तव में अच्छी चर्चा चल रही है। लिंक के लिए धन्यवाद। :-) - rahul286


एपीसी PHP6 में बनाया जाएगा, इसलिए यह एक तार्किक पसंद है। मैं इसका उपयोग करता हूं, और प्रदर्शन बढ़ावा अद्भुत है। यदि आपको ऑपकोड (यानी डीबी क्वेरी परिणाम) के अलावा कुछ और कैश करने की आवश्यकता है, तो आप इसके लिए एपीसी का भी उपयोग कर सकते हैं, लेकिन कई सर्वरों के बीच एपीसी कैश साझा करना संभव नहीं है। यदि आपको केवल एक सर्वर पर कैश करने की आवश्यकता है, तो एपीसी बहुत अच्छा है। यदि आपको एकाधिक सर्वरों पर स्केल करने की आवश्यकता है, और उनके बीच कैश साझा करना चाहते हैं, memcached तुम्हारा आदमी है

एक चीज जो मैं करता हूं, हालांकि, आपके द्वारा किए जाने वाले किसी भी (गैर-ऑपोड) कैशिंग के लिए एक रैपर क्लास तैयार की जाती है। इस तरह आप अपना कोड बदलने के बिना कैशिंग इंजन को स्वैप कर सकते हैं।


5
2017-08-19 15:40



वाह। अगर मैं एपीसी की आधिकारिक स्थिति जानता था, तो मैं इसे लंबे समय तक स्विच कर देता था ... :-) मुझे ओपोड / गैर-ऑपोड कैश अंतर के बारे में भी बहुत कुछ नहीं पता था। व्यक्तिगत पसंद के रूप में, मैं कैशिंग एनवी के साथ अनुकूलित करने में मदद के लिए रैपर वर्ग बनाने या मेरे ऐप्स के स्रोत को संशोधित करने के ऊपरी हिस्से से नहीं जाना चाहता हूं। - rahul286
ध्यान दें, चूंकि PHP 5.5 एकीकृत ज़ेंड ओपेकैच को "आधिकारिक" ऑपोड कैश के रूप में एकीकृत करता है, मुझे लगता है कि यह संभावना नहीं है कि वे PHP 6 के लिए एपीसी पर स्विच करेंगे। - Matteo Tassinari
इसे सही करने के लिए: PHP 5.5 वास्तव में ज़ेंड ओपेकैच के साथ जहाजों। कोई PHP 6 नहीं होगा। इसके बजाय एक PHP 7 होगा। एपीसी को लगभग (?) अप्रचलित माना जाना है। - Jisse Reitsma


बस ध्यान दें कि चीजें थोड़ी-थोड़ी बदल गई हैं और ऐसा लगता है कि एपीसी को PHP 6 कोर में शामिल नहीं किया जाएगा।

एपीसी में धीमी वृद्धि है और ऐसा लगता है कि यह कभी भी PHP 5.5 संगत नहीं होगा। इसके कारण, ऐसा लगता है कि PHP से लोग PHP कोर एक्सटेंशन के रूप में ज़ेंड ओपेकैच ऑपोड कैश एक्सटेंशन सेट करेंगे। आप यहां और अधिक पढ़ते हैं http://wiki.php.net/rfc/optimizerplus

महत्वपूर्ण नोट: ज़ेंड ओपेकैच में एपीसी जैसे उपयोगकर्ता डेटा कैश नहीं है, इसलिए यदि आपको उपयोगकर्ता डेटा कैश की आवश्यकता है तो आप इसे Memcache के साथ एक साथ उपयोग कर सकते हैं।


5
2017-08-25 09:20



जब यह पूर्ण हो जाता है तो यह पूरे कैश को भी अमान्य कर देता है (अमान्य प्रविष्टियां हटाई नहीं जाती हैं) - इसलिए यदि आपके पास स्मृति से अधिक कोड है या अक्सर तैनाती है, तो प्रदर्शन स्पाइक्स देखने की उम्मीद है। - symcbean


यदि PHP संस्करण कम से कम 5.50 चल रहा है, तो ओप कैश आपकी सबसे अच्छी शर्त है (PHP / PECL देशी लाइब्रेरी)। बाइनरी से स्थापित होने पर इसे पूर्व-संकलित किया जाना चाहिए।

http://php.net/manual/en/book.opcache.php

यदि 5.5 से पहले PHP संस्करण चल रहा है, तो एपीसी (PHP / PECL देशी ओपकोड कैश) सबसे आसान विकल्प होगा, हालांकि इसे अनियमित और मृत माना जाता है:

http://php.net/manual/en/book.apc.php

PHP की मूल OpCache कार्यक्षमता का उपयोग करके आपको तृतीय पक्ष पुस्तकालयों को बनाए रखने की समस्या को बचाया जाना चाहिए।


2
2018-01-16 21:39



यदि PHP <5.5 चल रहा है, तो आपको सबसे पहले जो करना चाहिए वह इसे अपडेट कर रहा है। - Michael Hampton♦
@ माइकल-हैम्पटन :: दरअसल! लेकिन कुछ दुर्लभ मामलों में आप ओएस को अपग्रेड किए बिना PHP अपडेट नहीं कर सकते हैं, जिसका अर्थ है कि एक नई हार्डवेयर आवश्यकता भी हो सकती है। उदाहरण - मैं आईबीएम आई-सीरीज़ सर्वर, संस्करण 6 सोमैथिंग्स चलाने वाली कंपनी के लिए काम करता हूं। हमारा PHP संस्करण 5.4.3 है। चूंकि आईबीएम PHP संस्करणों को पोर्ट करने के लिए ज़ेंड पर निर्भर करता है, इसलिए PHP 5.6 को आईबीएम-आई ओएस - 7.1 या नए (और बाद में ज़ेंड PHP सर्वर का एक नया संस्करण) का एक नया संस्करण चाहिए, जिसके लिए नए पावर -8 सर्वर की आवश्यकता होती है और इसी तरह ... मेह। - recurse


Memcache कैश कुंजी / मूल्य जोड़े, opcodes नहीं। आप इसे ओपोड कैश में से एक के साथ संयोजन का उपयोग कर सकते हैं।


0
2017-08-19 15:35



यह सरस्टान के उत्तर (नीचे) से लगता है कि मेरे PHP ऐप्स को संशोधित करने के लिए memcache की आवश्यकता हो सकती है। असल में मैं वर्डप्रेस का उपयोग कर रहा हूं और इसके कोर कोड को संशोधित करना एक अच्छा विचार नहीं होगा। - rahul286