2010-06-04 12 views
5

रेल अनुप्रयोग पर मेरी रूबी लगभग 12 9 एमबी मेमोरी का उपभोग कर रही है .. क्या यह सामान्य है?रेल एप्लिकेशन पर रूबी कितनी मेमोरी का उपभोग करेगी?

मैं

मेरे उन तालिका 18 k बारे में पंक्तियां हैं लगभग 3,000 अद्वितीय आगंतुकों को एक दिन है, मुझे कोई जटिल प्रश्न है ...।

+0

आप किस ऐप सर्वर के तहत चल रहे हैं? – x1a4

+0

आपके सर्वर पर आपके पास कितनी मेमोरी है। 12 9 वास्तव में काफी कम है। –

+0

संकर जाति .. मैं 4GB 'जड़ @ veraserver01 [~] # मुक्त कुल इस्तेमाल किया मुक्त साझा बफ़र्स कैश्ड मेम: 4149500 3959880 189620 0 261532 1556064 -/+ बफ़र्स/कैश: 2,142,284 2,007,216 स्वैप: 2,096,440 116 2096324' क्या यह समस्या है? – Will

उत्तर

4

12 9 एमबी मेरे लिए बहुत अधिक प्रतीत नहीं होता है, मुझे और अधिक महत्वपूर्ण लगता है कि यह संख्या समय के साथ बढ़ती है?

अगर यह होता है यह समस्या शायद है आपके डेटासेट का कितना तुम बाहर एक अनुरोध पर स्मृति में लोड कर रहे हैं

जांच: http://www.engineyard.com/blog/2009/thats-not-a-memory-leak-its-bloat/

संक्षिप्त में

: बहुत से सक्रिय रिकॉर्ड वस्तुओं instantiating एक जगह है जहाँ रेल है ऐप की मेमोरी पदचिह्न वास्तव में बढ़ता है।

यदि किसी अनुरोध में, आप किसी भी कारण से सभी 18k उपयोगकर्ताओं को फिर से शुरू करना चाहते थे, और बदतर, उनके सभी पदों (या आपके पास जो भी संगठन हैं) पर पुनरावृत्त होते हैं, तो आप ऑब्जेक्ट्स का एक टन तत्काल करेंगे, जो (चाहिए) अनुरोध के बाद मंजूरी दे दी है, लेकिन रूबी प्रणाली को वापस आवंटित करने के बाद स्मृति को वापस नहीं देता है।

+1

आपकी प्रतिक्रिया डेनिस के लिए धन्यवाद, मेरे पास एक सवाल है .. कितने सक्रिय रिकॉर्ड ऑब्जेक्ट्स मैं सभी 18k उपयोगकर्ताओं पर पुन: प्रयास नहीं करता हूं, लेकिन जब मैं उपयोगकर्ता बचाता हूं तो 64 सक्रिय रिकॉर्ड ऑब्जेक्ट्स (एक-एक करके) अपडेट करता हूं एक विशिष्ट रूप ... क्या मुझे एक प्रश्न में अद्यतन करना चाहिए? एक और बात यह है कि मेरे रेल ऐप क्रैश हो रहा है ... यह कहता है: "[FATAL] स्मृति आवंटित करने में विफल रहा" – Will

+1

प्रति सहेजने के लिए 64 अपडेट क्वेरी अत्यधिक –

+0

यह निर्भर करता है कि ऑब्जेक्ट कितने बड़े हैं, लेकिन आप सौदा करने में सक्षम होना चाहिए कई हजार वस्तुओं के साथ। जब आप अद्यतन करते हैं, तो क्या आप ऑब्जेक्ट्स पर "शामिल =>" कर रहे हैं? 64 अन्य ऑब्जेक्ट्स के 64 अपडेट के बजाय इसे करने के लिए एक और अधिक प्रभावी तरीका खोजने की कोशिश कर रहा है जैसे यह स्मार्ट होगा। जो विशेष रूप से आपके ऐप को क्रैश करता है? आपके सर्वर में कितनी मेमोरी है? क्या आप इससे बाहर हैं? यह ऐप कितना बड़ा होता है जब यह मर जाता है/ठीक होने से ठीक पहले? घातक त्रुटि गुगल में। एक बार फिर, ये लोग मुझसे ज्यादा चालाक हैं। http://www.engineyard.com/blog/2009/thats-not-a-memory-leak-its-bloat/ –

0

मैंने रेल अनुप्रयोगों को 500 एमबी जितना ऊंचा देखा है। मुझे यकीन है कि बड़े लोग मौजूद हैं। अद्वितीय विज़िटर और डेटाबेस क्वेरीज़ स्मृति उपयोग का कारण नहीं हैं। रूबी में यह महंगा और बड़ी इन-मेमोरी कंप्यूटेशंस है।

एबी उन तरीकों का परीक्षण करने का प्रयास करें और देखें कि आपकी मेमोरी उपयोग कितनी अधिक हो जाती है। इससे कुछ स्मृति समस्याएं हल हो सकती हैं।

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