मैं इसका उत्तर स्क्रीनशॉट के साथ दूंगा:
{% img img-responsive /images/posts/ruby-2-1-improvement.png 645 259 मैं इसे एक बड़ा हां कहूंगा%}
हमने लगभग एक सप्ताह पहले रूबी 1.9 से 2.1 तक उत्पादन में अपग्रेड किया था, और यही हमने देखा। सबसे नीचे ग्रे सेक्शन हमारा कचरा संग्रहण समय लगभग कुछ भी नहीं होने वाला है। कुल मिलाकर, अपग्रेड ने यूएसए को सर्वर प्रतिक्रिया समय में 15-20% सुधार दिया। वह कोई अतिरिक्त GC ट्यूनिंग किए बिना है!
हमने अपग्रेड को शिपिंग के बाद Google और Bing की क्रॉल दरों में एक बड़ा बढ़ावा देखा, जो विशेष रूप से हमारी जैसी साइटों के लिए बहुत बढ़िया है जो खोज इंजन ट्रैफ़िक से अत्यधिक लाभान्वित होते हैं।
अच्छा, तो यह कितना कठिन था?
करीब 150 मणि निर्भरता वाले बड़े रेल ऐप पर, अपग्रेड ने एक छोटी सी प्रतिबद्धता और कुछ दिनों के परीक्षण को लिया। हम अपने सभी सर्वरों पर रनआरवीएम करते हैं और शेफ के साथ प्रावधान करते हैं, इसलिए हमारे सभी सर्वरों को 2.1 में अपग्रेड करना शेफ रोल फ़ाइल में संस्करण संख्या को बदलने जितना आसान था।
हमें किन समस्याओं का सामना करना पड़ा?
हम अभी भी लिप्यंतरण के लिए iconv का उपयोग करते हैं, इसलिए हमें theiconv रत्न शामिल करना पड़ा, जो कि 2.x से हटाई गई बिल्ट-इनफंक्शनलिटी को प्रतिस्थापित करता है। मैं 2.x के तहत काम करने वाले रूबी-डीबग या डिबगर मणि को प्राप्त करने में सक्षम नहीं था, इसलिए हमने pry andpry-byebug पर स्विच किया। प्राइ-बायबग के बजाय अभी भी डिबगर रत्न को प्राथमिकता देते हैं, लेकिन pry irb की तुलना में इतना बेहतर है कि यह एक तरह का वॉश है। बायबग के लेखक डेविड रोड्रिग्ज ने बताया कि प्राइ-बायबग के साथ मेरी समस्याएं शायद बायबग के कारण नहीं थीं। वह बिल्कुल सही था! (यह वास्तव में बायबग और प्राइ के बीच बातचीत के कारण हुआ था) ।
मिश्रित 1.9 और 2.1 वातावरण में, आपको बंडलर को 1.5.1 में अपग्रेड करना होगा। बंडलर के नए संस्करण के साथ, आप अपने Gemfile में एक प्लेटफ़ॉर्म आवश्यकता के रूप में 2.1 निर्दिष्ट कर सकते हैं:
gem 'iconv', '~> 1.0.2', :platform => [:mri_20, :mri_21]
ऐसा लगता है कि गिटहब 2.1 के साथ कुछ अन्य समस्याओं में भाग गया, जिसका उल्लेख अमन गुप्ता ने इस सार में किया है:https://gist.github.com/tmm1/8393897,लेकिन हमने अभी तक कोई समस्या नहीं देखी है।
और भी अधिक गति प्राप्त करने के लिए शिप करने के बाद आप जीसी को भी ट्यून करना चाहेंगे। अमन के पास यह करने के तरीके के बारे में बहुत सारी जानकारी के साथ एक अच्छी पोस्ट है:https://tmm1.net/ruby21-rgengc/। यदि आप अपने सस्ते, सरल रूबी अपग्रेड से अधिकतम लाभ प्राप्त करना चाहते हैं, तो उनके ब्लॉग पर संपूर्ण 2.1 श्रृंखला पढ़ने योग्य है।