मैंने हाल ही में कोड या डेटाबेस में संभावित मुद्दों को देखने के लिए मेरे आगंतुक लॉग में PHP निष्पादन समय जोड़ा। समय स्क्रिप्ट के आरंभ और अंत के बीच microtime() अंतर के रूप में मापा जाता है।उच्च विलंबता (?) उपयोगकर्ताओं के लिए लंबे PHP निष्पादन
औसत निष्पादन समय (साइट के डीबग संस्करण पर अपने स्वयं के परीक्षण सहित) 2-15ms है। फिर मैं कुछ उपयोगकर्ताओं के लिए यादृच्छिक रूप से + 300ms निष्पादन देखता हूं। वे संभावित रूप से लोड स्पाइक्स, असंबद्ध डेटाबेस क्वेरी या फाइल सिस्टम एक्सेस के कारण होते हैं।
जो मैं समझ नहीं पा रहा हूं वह हर समय है और फिर उपयोगकर्ताओं को 5-30 सेकंड (!) निष्पादन समय के साथ प्रदर्शित करता है। मेरे परीक्षणों के आधार पर वे प्रतीत होता है कि यादृच्छिक पृष्ठ पर दिखाई देते हैं और उन समय के लिए एक्सेस लॉग पर कोई अनुरोध स्पाइक्स नहीं है, न ही कोड या डेटाबेस क्वेरी पर कुछ भी है जो संभवतः इस धीमी कार्यक्षमता का कारण बन सकता है। उन अनुरोधों में से 9 0% चीन से आते हैं और कुछ प्रकार के क्रॉलर या बॉट्स प्रतीत होते हैं।
तो क्या विलंबता PHP स्क्रिप्ट के निष्पादन समय को प्रभावित कर सकती है? क्या PHP निष्पादन रोक दिया गया है जबकि पिछले बफर उपयोगकर्ता को भेजा गया है?
मैं उचित रूप में समान बात के साथ इस अन्य धागा पाया, लेकिन कोई जवाब नहीं था: PHP's execution time changes based upon internet/connection latency?
संपादित करें:
मैं 4k 128k बाइट्स से पीएचपी output_buffering बढ़ती समाप्त हो गया। अब ठेठ निष्पादन समय 2-6ms तक गिर गया है और अब और अधिक यादृच्छिक हास्यास्पद लंबे समय नहीं हैं।
"तो: क्या विलंबता PHP स्क्रिप्ट के निष्पादन समय को प्रभावित कर सकती है? क्या PHP निष्पादन रोक दिया गया है जबकि पिछले बफर उपयोगकर्ता को भेजा गया है?" --- उस nginx को एक रिवर्स प्रॉक्सी के रूप में रोकने के लिए उपयोग किया जाता है। तो php + apache तेजी से काम करता है, तो nginx धीरे-धीरे – zerkms
परोसता है क्या PHP के लिए अपाचे स्वयं बफर के रूप में कार्य करने का कोई तरीका नहीं है? अगर वास्तव में अपाचे प्रक्रियाएं लंबे समय तक जीवित रहती हैं, तो मुझे वास्तव में कोई फर्क नहीं पड़ता है, केवल समस्या यह है कि देरी से पीएचपी स्क्रिप्ट्स पृष्ठ निष्पादन समय आंकड़े गड़बड़ कर देती हैं ... – MiikaH