मेरे पास एक निर्धारित कार्य है जो नियमित आधार पर (प्रत्येक घंटे) एक स्क्रिप्ट चलाता है। यह स्क्रिप्ट डेटाबेस और फाइल सिस्टम के साथ कुछ भारी बातचीत करता है और नियमित रूप से चलाने में कई मिनट लगते हैं। समस्या यह है कि, सर्वर की सीपीयू-उपयोग स्पाइक्स जबकि स्क्रिप्ट चल रही है और सामान्य संचालन धीमा कर देती है। क्या इस प्रक्रिया को थ्रॉटल करने का कोई तरीका है ताकि इसमें अधिक समय लगे लेकिन कई संसाधनों का उपभोग नहीं किया जाता है?एक PHP स्क्रिप्ट थ्रॉटलिंग के लिए सुझाव/ट्रिक्स
मैंने PHP के लिए अलग-अलग कॉन्फ़िगरेशन विकल्पों को देखा है लेकिन मेरी आवश्यकताओं के अनुरूप कोई भी ऐसा प्रतीत नहीं होता है।
php.ini में memory_limit को कुछ कम करने के लिए मेरे डेटा ऑब्जेक्ट्स को आसानी से बहने का कारण बनता है।
मैंने इसी तरह की पोस्ट देखी हैं जहां लोगों ने स्क्रिप्ट में कुछ बिंदुओं पर नींद() का उपयोग करने का सुझाव दिया है, लेकिन यह स्क्रिप्ट को सर्वर को घुमाने से नहीं रोकता है।
इष्टतम समाधान लैंप (इस मामले में वैंप) स्टैक को केवल 10% अधिकतम सीपीयू उपयोग का उपयोग करने के लिए कुछ तरीका बताएगा। मैं रनटाइम के बारे में बिल्कुल चिंतित नहीं हूं और यह पसंद करूंगा कि अगर प्रति सेकंड सीपीयू चक्रों को सहेजने का मतलब है तो इसमें अधिक समय लगेगा। मेरा वैकल्पिक समाधान डाटाबेस प्रतिकृति के साथ एक अलग सर्वर स्थापित करना होगा ताकि क्रॉन शहर के बाकी हिस्सों को धीमा किए बिना शहर जा सके।
पर्यावरण: विंडोज सर्वर 2k3, अपाचे 2.2.11, पीएचपी 5.2.9, MySQL 5.1
मैं इस स्थिति के लिए किसी भी जानकारी की सराहना करते हैं।
संपादित करें: मैं सभी उत्तरों की सराहना करता हूं, यहां तक कि * निक्स-विशिष्ट। होस्टिंग पर्यावरण को बदलने के लिए मेरी स्थिति में अभी भी काफी जल्दी है। उम्मीद है कि यह प्रश्न ओएस के बावजूद दूसरों की मदद करेगा।
ओह, क्षमा करें। मुझे लगता है कि आप विंडोज चल रहे हैं। मुझे 'दीपक' और 'क्रॉन' टैग से फेंक दिया गया था! – grossvogel
वैसे भी आपके उत्तर के लिए धन्यवाद। पर्यावरण की स्थिति बदलने के लिए मेरी स्थिति में अभी भी संभव है, इसलिए मुझे अभी भी आपका समाधान उपयोगी पाया गया है। –