मैं निगेंक्स और कुछ अन्य कार्यक्रमों के साथ एक छोटी वीपीएस (512 एमबी रैम) पर खरगोश एमक्यू चलाने की कोशिश कर रहा हूं। मैं कठिनाई के बिना बाकी सब कुछ के स्मृति उपयोग को ट्विक करने में सक्षम हूं, लेकिन मुझे किसी भी कम रैम का उपयोग करने के लिए RabbitMQ नहीं मिल रहा है।खरगोश एमक्यू मेमोरी उपयोग को कम करें
मुझे लगता है कि मुझे खरगोश एमक्यू के लिए एर्लंग उपयोगों की संख्या को कम करने की आवश्यकता है, लेकिन मैं इसे काम करने में सक्षम नहीं हूं। मैं भी रूप में भी 5% के रूप में कम, डिफ़ॉल्ट (40% की) नीचे कुछ अलग मूल्यों के vm_memory_high_watermark
स्थापित करने की कोशिश की है।
समस्या का एक हिस्सा यह हो सकता है कि वीपीएस प्रदाता (मीडिया टेम्पल) मुझे मेरी आवंटित स्मृति पर जाने की अनुमति देता है, इसलिए जब मुफ्त या शीर्ष का उपयोग किया जाता है, तो यह दिखाता है कि सर्वर के पास लगभग 900 एमबी है।
खरगोश एमक्यू द्वारा स्मृति उपयोग को कम करने के लिए कोई सुझाव, या एरलांग बनाने वाले धागे की संख्या सीमित करें? मेरा मानना है कि एरलांग 30 थ्रेड का उपयोग कर रहा है, जो एए 30 ध्वज पर आधारित है जिसे मैंने प्रक्रिया कमांड पर देखा है।
आदर्श रूप से मैं 100 एमबी से नीचे होने के लिए RabbitMQ mem उपयोग करना चाहता हूं।
संपादित करें:
vm_memory_high_watermark
के साथ 5% (या कॉन्फ़िग फ़ाइल में 0.05) के लिए सेट, RabbitMQ लॉग की रिपोर्ट है कि RabbitMQ की स्मृति सीमा 51mb को तैयार है। मुझे यकीन नहीं है कि 51 एमबी कहां से आ रहा है। वर्तमान वीपीएस आवंटित स्मृति 924 एमबी है, इसलिए इसमें से 5% लगभग 46 एमबी होना चाहिए।
RabbitMQ अप शुरू करने से पहले, मैं प्रयुक्त राम की 453mb चारों ओर बैठा हूँ, और शुरू RabbitMQ के बाद मैं 650MB के आसपास रहा हूँ। लगभग 200 एमबी वृद्धि। क्या यह हो सकता है कि 200 एमबी निम्न सीमा है कि खरगोश एमक्यू के साथ चलेगा?
संपादित 2
ps aux की Here are some screenshots और पहले और RabbitMQ और स्मृति कील दिखा जब RabbitMQ शुरू कर दिया है एक ग्राफ शुरू करने के बाद।
संपादित 3
मैं भी कोई प्लगइन्स के साथ की जाँच सक्षम है, और यह बहुत कम अंतर बना दिया। यह प्लगइन्स मैं था (प्रबंधन और अपने आवश्यक शर्तें) केवल राम उपयोग के 8mb के बारे में जोड़ा लगता है।
संपादित 4
मैं अब के साथ परीक्षण करने के लिए इस सर्वर है, तथापि, वहाँ एक conf delegate_count
कि जहाँ तक मुझे पता के रूप में 16 वर्ष की एक डिफ़ॉल्ट के लिए सेट है सेटिंग होती है, यह spawns 16 sup- खरगोश के लिए procs। छोटे सर्वर पर इस नंबर को कम करने से स्मृति पदचिह्न को कम करने में मदद मिल सकती है। इस करता है, तो कोई विचार वास्तव में काम करता है, या यह कैसे प्रभावों प्रदर्शन, लेकिन यह कोशिश करने के लिए कुछ न कुछ है।
जब मैंने 'vm_memory_high_watermark' का उपयोग किया, तो उसने लॉग में सही रैम सीमा की रिपोर्ट की (वीपीएस के वास्तविक 900 एमबी के आधार पर, मैंने खरीदा 512 एमबी नहीं)। 5% पर सेट होने पर लॉग 45 एमबी दिखाए जाते हैं, लेकिन प्रत्येक एरलांग प्रक्रिया जो कि 20 से 25 एमबी रैम के बीच उपयोग की जाती है, जो मुझे तुरंत मेरे 512 एमबी आवंटन पर डाल देती है। –
जब आप कहते हैं 'प्रत्येक erlang प्रक्रिया' का मतलब है, ओएस erlang प्रक्रिया या आंतरिक प्रक्रिया erlang? –
जब मैं htop चलाता हूं, तो मुझे 30 या तो '/usr/lib/erlang/erts-5.7.4/bin/beam.smp -W w -K true -A30 -P 1048576' और उसके बाद RabbitMQ से संबंधित कुछ झंडे दिखाई देते हैं और mnesia। –