पृष्ठ निष्पादन समय को कम करने के लिए सर्वश्रेष्ठ एपीसी सेटिंग्स


15

मेरे पास Drupal 7, app के साथ php-fpm और apache पीछे वार्निश और 512 MB RAM है।

मैं डेवेल मॉड्यूल के साथ पृष्ठ निष्पादन समय को मापता हूं।

पृष्ठ के निष्पादन समय की तुलना में डेटाबेस क्वेरी समय कम (62ms) है जो 854 एमएस है। इसका मतलब है कि PHP और APC सेटिंग्स के साथ समस्या है।

मेरी वर्तमान सेटिंग्स बस हैं

apc.shm_size = 64
apc.stat=1 

मैं कैसे सुधार कर सकता हूं?

ड्रुपल के लिए सबसे अच्छी सेटिंग्स उपरोक्त विन्यास को क्या कहा गया है?

धन्यवाद

जवाबों:


12

हम एक SVN पुश वातावरण में चलते हैं इसलिए हम केवल एक स्क्रिप्ट के साथ apc फ़ाइल कैश को साफ़ करते हैं।

एपीसी सेटिंग्स:

apc.ttl=604800
apc.user_ttl=3600
apc.shm_size=192M
apc.include_once_override=1
auto_globals_jit=Off
apc.num_files_hint = 2048

apc.stat_ctime = 0
apc.file_update_protection = 2
apc.stat = 0

PHP स्क्रिप्ट:

<?php
$return = apc_clear_cache('opcode');
echo var_export($return);

604800 = 1 सप्ताह।

इसके बाद, xdebug / xhprof को प्राप्त करना और चलाना और साइट की कैश ग्राइंड करना आपको यह बताने देना चाहिए कि साइट धीमा क्या है। संक्षेप में कैश ग्राइंड आउटपुट ड्रुपल को गति देने का सबसे अच्छा तरीका है। नीचे मैं सूचीबद्ध कर रहा हूं कि हम इसे तेज करने के लिए किस पैच और मॉड्यूल का उपयोग करते हैं; आपके मामले में यह सबसे अधिक संभावना होगी।

Drupal 6 विशिष्ट उत्तर नीचे

एक बार जब आप इस बिंदु को पा लेते हैं और महसूस करते हैं कि एपीसी आपको वह नहीं दे रहा है जो आपकी तलाश में है, तो प्रेसफ्लो करने के लिए स्विच करें और इन पैच को चक्कर दें:

इनमें से कुछ मॉड्यूलों को भी आज़माएं क्योंकि उन्होंने हमारी साइटों की गति में बड़े पैमाने पर सुधार किया:


आपके उत्तर के लिए बहुत बहुत धन्यवाद, लेकिन मेरे पास Drupal 7.
जॉन

तो APC भागों और xdebug / xhprof भागों को लें और D6 पैच को इस बात के उदाहरण के रूप में देखें कि क्या जारी करें कतार में। उपरोक्त सभी पैच जहां कैश को देखने, दर्द बिंदु को खोजने और इसके लिए इसी मुद्दे को खोजने का एक परिणाम है। त्वरित शुरुआत: drupal.org/project/issues/search/…
mikeytown2


1
सिर्फ FYI करें, मुझे लाइन apc.include_once_override = 1 पर टिप्पणी करनी थी क्योंकि साइट Puregin.org/node/2550/3928
corbacho

php.net/apc.configuration#ini.apc.include-once-override यह इंगित करने के लिए धन्यवाद। PHP और APC संस्करण के आधार पर यह समस्या पैदा कर सकता है
mikeytown2

3

यह उन में से एक है "स्ट्रिंग प्रश्नों का एक टुकड़ा कितना लंबा है"।

एक उच्च-वॉल्यूम साइट के लिए जो अच्छा है वह कम-वॉल्यूम साइट के लिए बहुत सारे मॉड्यूल के साथ समान नहीं हो सकता है, और केवल कुछ मॉड्यूल वाले मध्यम-वॉल्यूम साइट के लिए समान नहीं हो सकता है। सर्वर पर चल रही अन्य साइटें भी उस मेमोरी में खा सकती हैं जो एपीसी ने उपलब्ध की हैं।

मेरा शुरुआती बिंदु है

apc.enabled=1
apc.shm_segments=1
apc.shm_size=64
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.rfc1867=1

मैं तब सर्वर के लिए सेटिंग्स को समायोजित करता हूं, लेकिन फिर से, कोई भी एक आकार सभी सेटिंग्स के अनुरूप नहीं होता है।

Apc.php (संभवतः /usr/share/pear/apc.php पर स्थित) ढूंढें, और इसे अपने Drupal इंस्टॉल के लिए DOCROOT में स्थापित करें। Apache config के माध्यम से इसे अपने IP पते पर लॉक करें। अंदर उपयोगकर्ता नाम / पासवर्ड संपादित करें, और फिर इसे ब्राउज़ करें। फिर आपको अपने एपीसी आँकड़े दिखाई देंगे।

कैश मिस को कम करने के लिए shm_size पैरामीटर को फिर से कॉन्फ़िगर करें। आदर्श रूप से, आप इसे फ़ाइल के लिए कैश मिस नहीं होने के लिए बस पर्याप्त मेमोरी देना चाहते हैं, साथ ही एपीसी उपयोगकर्ता कैश के लिए कुछ अतिरिक्त मेमोरी।

कैश मंथन को रोकने के लिए TTL का अनुकूलन करें। यदि आप फ़ाइलों का संपादन नहीं कर रहे हैं, तो आप इस संख्या को बढ़ा सकते हैं।

जब आप ड्रश का उपयोग करते हैं तो enable_cli काम करता है, ताकि एबीसी से कैश की गई फ़ाइलों का उपयोग करें।

rfc1867 फ़ाइल अपलोड के लिए आसान है।

मैंने शीर्षक में php-fpm को भी देखा। यह मामलों को उलझाता है, और वास्तव में Drupal उत्तर के दायरे से परे है। सर्वर फॉल्ट पर आपको बेहतर प्रतिक्रियाएँ मिल सकती हैं , क्योंकि बहुत से सिस्टम कॉन्फ़िगरेशन सेटिंग्स सीधे Drupal से संबंधित नहीं हैं।


जहां कुछ अच्छा ट्यूटोरियल है जो आसान भाषा में समझाता है कि प्रत्येक सेटिंग्स क्या कर रही है, जैसे ttl, सेगमेंट, इत्यादि? कैसे शराबी के साथ मदद करता है?
जॉन

क्या आप बता सकते हैं कि "मुझे ट्रैफ़िक कैसे मिलता है, सर्वर पर और क्या चल रहा है, मैंने कौन से मॉड्यूल इंस्टॉल किए हैं, आदि" सेटिंग्स को प्रभावित? धन्यवाद
जॉन

ऊपर दी गई इन सेटिंग्स से बहुत मदद नहीं मिली। क्या मुझे यह देखने की कोशिश करनी चाहिए कि php के साथ क्या होता है?
जॉन्स

एपीसी सभी सेटिंग का विवरण यहां दिया php.net/manual/en/apc.configuration.php
mpdonadio

1
@MPD> enable_cli बहुत आसान है जब आप ड्रश का उपयोग करते हैं, ताकि ड्रुक एपीसी से> कैश्ड फ़ाइलों का उपयोग करता है। दरअसल, क्ली एक अलग प्रक्रिया है और यह एपेक कैश को एपाचे के साथ साझा नहीं करता है, या यहां तक ​​कि कॉल करने के लिए भी।
रोबिन मिलेट

2

एपीसी बस PHP फ़ाइलों के लोडिंग और पार्सिंग में सुधार करता है। एक बड़ा हिस्सा निष्पादन का समय भी है। कई कारक हैं जो निष्पादन के समय को बढ़ा सकते हैं, जिसमें बग (विशेष रूप से कैश से संबंधित बग), आंतरिक ओवरहेड (जैसे ड्रुपल_लटर), मॉड्यूल_इम्प्लीमेंट ()) और इतने पर शामिल हैं।

जैसा कि आपने पूछा था और पहले से ही mikeytown2 द्वारा सुझाया गया था, मैं xhprof का उपयोग करता हूं (मैं इसे इन दिनों xdebug पर पसंद करता हूं क्योंकि यह सीधे, त्वरित परिणाम तक पहुंच प्रदान करता है और अतिरिक्त साधनों की आवश्यकता नहीं है) यह पता लगाने के लिए कि आपकी अड़चनें कहां हैं।

मैंने हाल ही में Drupal और ठेठ अड़चनों के भीतर xhprof का उपयोग करने के बारे में दो ब्लॉग पोस्ट लिखे हैं , जो आपको दिलचस्प लग सकते हैं।


group.drupal.org/node/82889 PHP प्रोफाइलिंग के साथ XHprof
जॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.