2011-03-31 14 views
6

मैं कुछ समय के लिए रूबी एंटरप्राइज़ संस्करण और पैसेंजर (अपाचे के लिए, क्योंकि मैं अन्य चीजों के लिए अपाचे चलाता हूं) का उपयोग कर रहा हूं, लेकिन मुझे आश्चर्य है कि आजकल सर्वर पर क्या उपयोग करना है इसके बारे में कोई नई प्रवृत्ति है। उदाहरण के लिए मैंने थिन, यूनिकॉर्न के बारे में सुना है ... मुझे यह भी पता है कि 1.9.2 आरईई से तेज है, लेकिन मुझे रैम खपत के बारे में आश्चर्य है। मैं इसे कुछ गति की कीमत पर भी कम रैम का उपभोग करना चाहता हूं।रेल (3) सर्वर - आजकल क्या उपयोग करें?

सभी सलाह के लिए धन्यवाद।

उत्तर

6

यात्री अभी भी बेहद मजबूत है, विशेष रूप से आरईई निकट भविष्य में 1.9 का स्वाभाविक रूप से समर्थन करेगा। तथ्य यह है कि आपका एप्लिकेशन क्रैश हो सकता है, हालांकि यह आपकी मशीन पर किसी और चीज को प्रभावित नहीं करेगा। कोड तैनाती बेहद आसान है क्योंकि सर्वर कनेक्शन स्वीकार करना जारी रखेगा, जिसका मतलब है कि आपके लिए कम निराशा/तनाव है।

हालांकि, तुलना के संदर्भ में:

यहाँ एक महान संसाधन है सभी नए सर्वर के साथ (स्मृति की खपत सहित) विभिन्न तुलना की जाँच है।

यह पतला, यूनिकॉर्न, यात्री, TorqueBox, Glassfish, और त्रिनिदाद तुलना:

http://torquebox.org/news/2011/03/14/benchmarking-torquebox-round2/

+0

धन्यवाद, महान संसाधन। – mrbrdo

1

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

4

माइक लुईस का लिंक उन विभिन्न रूबी सर्वरों की तुलना करने का अच्छा काम करता है। मेरा व्यक्तिगत अनुभव nginx/REE/यात्री के साथ रहा है और यह अच्छा रहा है। मैंने दूसरों की कोशिश नहीं की है, इसलिए मैं उस पर टिप्पणी नहीं कर सकता।

हालांकि, मैं राम उपयोग पर बात कर सकता हूं। रैम की आपकी सबसे बड़ी बचत 32-बिट सर्वरों का उपयोग करने से आएगी। मेरे अनुभव (3x 3 जीबी ऐप सर्वर) में, 64-बिट आरईई/यात्री प्रक्रियाओं में उनके 32-बिट समकक्षों के रूप में 2x तक की रैम तक पहुंच गई। हमने 64 से 32 बिट सर्वरों में बढ़ते हुए एक महत्वपूर्ण प्रदर्शन वृद्धि देखी, बाकी सब कुछ वही रहता है। जब तक आपके एप्लिकेशन को 64-बिट की आवश्यकता न हो, तो मैं 32-बिट में अपने एप्लिकेशन सर्वर (डेटाबेस नहीं) चलाने का सुझाव दूंगा।

7

यदि आप न्यूनतम स्मृति चाहते हैं तो आपको पतला आज़माएं। इसमें यूनिकॉर्न या यात्री के रूप में मास्टर वर्कर नहीं है, इस प्रकार कम स्मृति का उपयोग करता है। मान लीजिए कि आपके पास एक छोटा सा ऐप है जिसे छोटे वीएम पर चलाने की आवश्यकता है, तो आप 1 पतली कर्मचारी + nginx का उपयोग कर सकते हैं। मैंने 256 एमबी वीएम पर स्वैप किए बिना थिन + एनजिनक्स + पोस्टग्रेस का उपयोग करके कई रेल 3.2 एप्स चलाए।

यूनिकॉर्न तेज़ है लेकिन इसे एक मास्टर वर्कर की आवश्यकता है। यह अच्छा है अगर आप हेरोोकू पर दौड़ना चाहते हैं, तो आप इसे 2 या 3 श्रमिकों को सेट कर सकते हैं और 512 एमबी सीमा के भीतर हो सकते हैं।

यदि आपका ऐप बहुत बड़ा है और आपके पास बहुत लंबे समय से चलने वाले अनुरोध हैं, तो मैं jRuby और Thinidad/Torquebox को देखूंगा।

मैंने कुछ ऐप्स को एमआरआई + साइडकीक से jruby + त्रिनिदाद + त्रिनिदाद_Scheduler में परिवर्तित कर दिया। मुझे ट्रिनिडाड सर्वर में 50 धागे के पूल का उपयोग करके लगभग 100-200 रिक/सेक मिलता है!

मुझे जेआरबी के बारे में क्या पसंद है यह है कि आप सब कुछ एक रेल सर्वर पर जोड़ सकते हैं। आप एक ही JavaVM पर cache_store पर EHcache, शेड्यूलिंग, पृष्ठभूमि प्रोसेसिंग और वास्तविक मल्टीथ्रेडिंग के साथ एक साथ रख सकते हैं।

आपको रेडिस, मेमकैच, रेस्क्यू या साइडकीक को अलग से चलाने की आवश्यकता नहीं है।

मैं यह नहीं कह रहा कि वे अच्छे नहीं हैं, मुझे साइडकीक और रिस्क्यू पसंद है, लेकिन आप एक प्रक्रिया पर सब कुछ जोड़कर अपनी जटिलता को कम कर सकते हैं और उच्च सहमति प्राप्त कर सकते हैं।

एक और उन्नत और एंटरप्राइज़ समाधान टोक़बॉक्स है, इसमें क्लस्टरिंग के लिए समर्थन है और यह सुपर स्केलेबल है। लेकिन मुझे अपने ऐप के साथ टॉर्कबॉक्स पर दुर्घटनाग्रस्त होने में समस्याएं आई हैं, इसलिए मैं अब त्रिनिदाद से चिपक रहा हूं।

jRuby के नुकसान? याद! एक त्रिनिदाद सर्वर 2-3 जीबी रैम तक न्यूनतम 512 एमबी का उपयोग करेगा। इसके अलावा, एकल थ्रेड सर्वर के लिए, रूबी-1.9.3 चलने वाले रेल ऐप से एक ही अनुरोध jRuby पर एक ही अनुरोध के रूप में लगभग दोगुना है।

एक और विकल्प प्यूमा है, आप प्यूमा के साथ एमआरआई पर पूर्ण बहुप्रचार प्राप्त कर सकते हैं। मैं खुद को अपने ऐप्स पर पर्याप्त स्थिर नहीं कर सका।

तो, यह सब आपकी आवश्यकताओं, स्मृति उपयोग, पूर्ण थ्रेडिंग और समरूपता पर निर्भर करता है।

यात्री के अलावा, यूनिकॉर्न, त्रिनिदाद, पुमा और टोरकबॉक्स पर एक नज़र डालें। वे अभी शीर्ष रेल सर्वर हैं।

अपनी रेल ऐप को jRuby में परिवर्तित करने और ट्रिनिडाड जैसे कई तरीकों का उपयोग करके अपने ऐप को तैनात करने के परिचय के साथ एक महान पुस्तक है। http://pragprog.com/book/jkdepj/deploying-with-jruby

टोक़बॉक्स दस्तावेज़ प्रलेखन आश्चर्यजनक रूप से अच्छा है। यह बहुत विस्तृत है और सभी Torquebox सुविधाओं का उपयोग करने के लिए वास्तव में अच्छा बताता है। http://torquebox.org/documentation/

मुझे आशा है कि मेरे अनुभव को साझा करने में मदद मिली है।

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