Gunicorn महत्वपूर्ण कार्यकर्ता टाइमआउट त्रुटि को कैसे हल करें?


26

मैंने अपनी वेबसाइट को दो सर्वरों में होस्ट करने के लिए nginx और gunicorn का उपयोग किया है,

दोनों सर्वरों के पैकेज एक ही हैं और वेबसाइट सफलतापूर्वक होस्ट की गई है,

लेकिन मेरे सर्वर में से एक में gunicorn हमेशा टाइमआउट हो जाता है और मुझे त्रुटि मिलती है

[CRITICAL]Worker Timeout
Booting worker with pid
Worker cannot boot with pid

और इसके बाद मुझे वेबपेज में 502 बैडगेट त्रुटि मिलती है। मुझे वेबसाइट लाने के लिए gunicorn प्रक्रिया को फिर से शुरू करना होगा।

निम्नलिखित त्रुटि लॉग है:

2014-02-16 14:29:53 [1267] [CRITICAL] WORKER TIMEOUT (pid:4994)
2014-02-16 14:29:53 [1267] [CRITICAL] WORKER TIMEOUT (pid:4994)   
2014-02-16 14:29:53 [22140] [INFO] Booting worker with pid: 22140

और मुझे इस तरह निरंतरता त्रुटि मिलती है,

2014-02-16 14:29:53 [22140] [DEBUG] Ignoring EPIPE
Ignoring EPIPE
2014-02-16 14:29:53 [22140] [DEBUG] Ignoring EPIPE
Ignoring EPIPE
2014-02-16 14:29:57 [22140] [DEBUG] Ignoring EPIPE
Ignoring EPIPE

और कार्यकर्ता फिर से शुरू होता है,

2014-02-16 14:32:44 [1267] [CRITICAL] WORKER TIMEOUT (pid:4993)
2014-02-16 14:32:44 [1267] [CRITICAL] WORKER TIMEOUT (pid:4993)
2014-02-16 14:32:44 [22276] [INFO] Booting worker with pid: 22276

EPIPE त्रुटि को अनदेखा करने पर फिर से और यह तब तक जारी रहता है जब तक कि मैं gunicorn को पुनरारंभ नहीं करता। और जब मुझे यह त्रुटि मिल रही है तो मुझे nginx से 504 गेटवे त्रुटि मिलती है


1
आप अधिक जानकारी प्रदान कर सकते हैं, कृपया? Gunicorn लॉन्च करने के लिए आप जिस कमांड-लाइन का उपयोग कर रहे हैं, वह एक अच्छी शुरुआत होगी।
पर्यवेक्षणांग

कर्मी को यह देखने के लिए ट्रेस करें कि वह कहाँ अटक रहा है:strace -p <PID> -e trace=network -t
आर्येह लीब टौरोग

आप जो एप्लिकेशन चला रहे हैं, वह क्या है? आप डिफ़ॉल्ट टाइमआउट बढ़ाना चाहते हैं।
बुरहान खालिद

हाँ बुरहान खालिद, अब के लिए मैंने nigx में प्रॉक्सी_ड्रेड_आउटआउट को बढ़ाकर 1200 कर दिया है और समय-समय पर Gunicorn कॉन्फ़िगरेशन में 3600 तक। आशा है कि यह काम करेगा
sm

@sm - यह काम किया?
इमाखुश

जवाबों:


29

इसे ठीक करने के लिए नियनेक्स में टाइमआउट ध्वज बढ़ाएं,

Nginx वृद्धि में proxy_connect_timeoutऔर proxy_read_timeout, आप httpनिर्देश के तहत nginx.conf फ़ाइल में निम्न जोड़ सकते हैं । वे 60 के दशक के लिए डिफ़ॉल्ट।

xy_connect_timeout 300s;

xy_read_timeout 300s;

Nginx सर्वर को पुनरारंभ करें। टाइमआउट पर nginx डॉक्स देखें ।

यदि ऊपर फिक्स काम नहीं करता है, तो Gunicorn कॉन्फ़िगरेशन में Gunicorn टाइमआउट फ्लैग बढ़ाएं, डिफ़ॉल्ट Gunicorn टाइमआउट 30 सेकंड है।

- 90 से

टाइमआउट के बारे में Gunicorn प्रलेखन

-t INT, - टाइमआउट INT 30 से अधिक सेकंड के लिए खामोश 30 कर्मचारी मारे जाते हैं और फिर से शुरू होते हैं।

आम तौर पर तीस सेकंड के लिए सेट। यदि आप सिंक वर्कर्स के लिए नतीजों के बारे में सुनिश्चित हैं, तो यह केवल उच्चतर है। गैर सिंक श्रमिकों के लिए इसका मतलब यह है कि कार्यकर्ता प्रक्रिया अभी भी संवाद कर रही है और एक भी अनुरोध को संभालने के लिए आवश्यक समय की लंबाई से बंधा नहीं है।

वर्कर टाइमआउट पर गुनिकोर्न डॉक्स

आशा है कि यह इसे हल करता है।


2
इस समाधान ने मेरे जीवन को बचा लिया जब मैं पूरे दिन एक समाधान की तलाश में था। यदि आपके पास वास्तव में एक प्रक्रिया है जो 30 से अधिक समय तक चलती है (जो मेरी समस्या थी), तो यह निश्चित रूप से सही समाधान है।
एलेक्स पी। मिलर

हां, यहां तक ​​कि हमारे पास एक परिदृश्य है जो 30 सेकंड से अधिक समय तक चलता है, इसलिए हमने समाधान अपनाया। अच्छा लगा इससे मदद मिली।
श्रीकांत

हमारे पास ऐसा कोई परिदृश्य नहीं है। साइट पर एक मामूली यातायात है, लेकिन कार्यकर्ता प्रत्येक दिन लगभग एक ही समय पर समय समाप्त करते हैं। फिर 1-2 मिनट के बाद चलती है। मेरा सेटअप nginx है - पर्यवेक्षक - gunicorn - django। मेरे पास 120 सेकंड का टाइमआउट है।
इमाकुश

प्रॉक्सी_कनेक्ट_टाइमआउट: "एक अनुमानित सर्वर के साथ संबंध स्थापित करने के लिए एक टाइमआउट को परिभाषित करता है। यह ध्यान दिया जाना चाहिए कि यह टाइमआउट आमतौर पर 75 सेकंड से अधिक नहीं हो सकता है ।"
डेवीडब

क्या आप इसके लिए तय कर पाए हैं? मैं इस समस्या का सामना तब भी कर रहा हूँ जब मेरा आवेदन बेकार है। Gunicorn श्रमिक रोजाना टाइमआउट करते हैं और टाइमआउट बढ़ाने जैसे कोई भी समाधान काम नहीं करता है।
अंकित जायसवाल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.