2016-02-12 14 views
8

का कारण यात्री स्टाइल श्रमिकों का प्रबंधन कैसे करें मेरे पास ubuntu 14.04 मशीन पर चलने वाला रेल ऐप है और यह Nginx और passenger द्वारा परोसा जाता है। कई बार कर रहे हैं जब अनुप्रयोग निम्न त्रुटिडाउनटाइम

[ agents/LoggingAgent/Main.cpp:338 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown) 
[ agents/LoggingAgent/Main.cpp:400 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected... 
[ ServerKit/Server.h:453 ]: [LoggerAdminServer] Shutdown finished 
[ agents/LoggingAgent/Main.cpp:425 ]: PassengerAgent logger shutdown finished 
[ ServerKit/Server.h:453 ]: [ServerThr.1] Shutdown finished 
[ ServerKit/Server.h:453 ]: [ServerThr.2] Shutdown finished 
[ ServerKit/Server.h:453 ]: [AdminServer] Shutdown finished 
[ agents/HelperAgent/Main.cpp:724 ]: Disconnecting long-running connections for process 19431, application /public#default 
[ agents/HelperAgent/Main.cpp:724 ]: Disconnecting long-running connections for process 19440, application /public#default 
[ agents/Watchdog/Main.cpp:1255 ]: Starting PassengerAgent watchdog... 
[ agents/HelperAgent/Main.cpp:883 ]: Starting PassengerAgent server... 
[ agents/HelperAgent/Main.cpp:232 ]: PassengerAgent server running in multi-application mode. 
[ agents/HelperAgent/Main.cpp:637 ]: PassengerAgent server online, PID 19637 
[ agents/LoggingAgent/Main.cpp:431 ]: Starting PassengerAgent logger... 
[ agents/LoggingAgent/Main.cpp:312 ]: PassengerAgent logger online, PID 19645 
[ agents/HelperAgent/Main.cpp:868 ]: PassengerAgent server shutdown finished 

दे रही है नीचे चला जाता है और जब तक Nginx को पुन: प्रारंभ किया जा रहा है एप्लिकेशन नीचे बनी हुई है। यह शायद उन पुराने श्रमिकों के कारण है जो अब सेवा नहीं कर रहे हैं और स्मृति को खा रहे हैं (अगर मैं गलत हूं तो मुझे सही करें)।

मैंने यात्री को 6 पर सेट किया है क्योंकि मेरा ऐप उदाहरण 150-200 Mb मेमोरी 2GB RAM के साथ लेता है।

मैं एक ऐसी स्क्रिप्ट लिखने के बारे में सोच रहा था जो नियमित रूप से स्टाइल श्रमिकों की जांच करे और यदि Nginx को पुनरारंभ करें या touch tmp/restart.txt करें। मैं यह भी जानना चाहता हूं कि बालों के कर्मचारियों की जांच कैसे करें या passenger अपेक्षित के रूप में काम नहीं कर रहा है।

एक और समाधान मैंने सोचा कि Nginx नियमित रूप से पुनरारंभ करना है या एक घंटे के नियमित अंतराल के बाद touch tmp/restart.txt करें।

मैं भी एप्लिकेशन

  • यात्री-config पुनः आरंभ-ऐप

  • restart.txt

  • पुन: आरंभ करना Nginx

  • को पुन: प्रारंभ के तीन तरीके के बारे में यात्री प्रलेखन पढ़ा है

पहले दो मामले ड्रो नहीं करेंगे ऐप को पुनरारंभ करते समय कोई अनुरोध करें लेकिन ऐप को पुनरारंभ करते समय शून्य डाउन टाइम हो सकता है क्योंकि ऐप को पुनरारंभ करने में ऐप के आधार पर कुछ समय लग सकता है।

मैं जानना चाहता हूं कि कौन सा अच्छा तरीका होगा या इस समस्या से छुटकारा पाने का कोई अन्य तरीका है।

उत्तर

0

सबसे पहले, आपको वास्तव में passenger configuration options जांचना चाहिए। दूसरा, आपको वास्तव में यह पता लगाना चाहिए कि वास्तव में आपके यात्री कार्यकर्ता को क्या लटका है। इसके लिए एक यात्री लॉग पैरामीटर (जिसे आप मॉनिटर कर सकते हैं) है, क्योंकि ऐसा प्रतीत नहीं होता है कि आप निश्चित रूप से निश्चित हैं कि उन प्रक्रियाओं में क्या चल रहा है। :)

अब हाथ में प्रथम अंक के बारे में - कार्यकर्ता मजबूर करने के लिए अपनी इच्छा के पुनः प्रारंभ - अगर है कि वास्तव में कुछ नहीं कर रहा है, जबकि फांसी की प्रक्रिया की वजह से है: आप के साथ

passenger_min_instances 
passenger_max_instances 

गठजोड़ कर सकते हैं

passenger_pool_idle_time/passenger_max_requests 

दिए गए लिंक पर इन आदेशों के बारे में कुछ पढ़ें, यह अधिक विस्तार से चला जाता है।

संबंधित मुद्दे