मैं वर्तमान में pm2 का उपयोग करके node.js चला रहा हूं।

और हाल ही में, मैं pm2 monit कमांड का उपयोग करके "कस्टम मेट्रिक्स" की जांच करने में सक्षम था।

यहां, हीप साइज, यूज्ड हीप साइज और एक्टिव रिक्वेस्ट जैसी जानकारी दिखाई जाती है।

मुझे नहीं पता कि ढेर का आकार कैसे निर्धारित किया जाता है। दरअसल, मैंने विभिन्न सर्वरों पर चल रहे pm2 की जाँच की।

प्रत्येक को 95mib / 55mib पर सेट किया गया था, और तदनुसार, प्रयुक्त ढेर का आकार अलग था।

साथ ही, ढेर का उपयोग 100% के करीब बेहतर है?

संबंधित जानकारी खोजने के लिए "StackOverflow" पर खोज करते समय, मैंने निम्नलिखित लेख देखा।

PM2 में हीप यूसेज का क्या मतलब है

इसके अलावा सक्रिय अनुरोधों का क्या अर्थ है? यह लगातार शून्य है।

शुक्रिया!


[संपादित करें]

Env: ubuntu18.04 [ec2 - t3.micro]

नोड संस्करण: v10.15

[अतिरिक्त]

सर्वर मेमोरी: 1GB [40~50% इस्तेमाल किया गया]

सीपीयू: वीसीपीयू (2) [1 ~ 2% प्रयुक्त]

5
hyundeock 8 अक्टूबर 2020, 09:25

1 उत्तर

सबसे बढ़िया उत्तर

ढेर वह RAM है जिसका उपयोग प्रोग्राम द्वारा किया जाता है जिसे आप PM2 को प्रबंधित और मॉनिटर करने के लिए कह रहे हैं। जावास्क्रिप्ट और इसी तरह की भाषा रनटाइम में हीप स्पेस आवंटित किया जाता है, जब आपका प्रोग्राम ऑब्जेक्ट बनाता है और कचरा संग्रह पर जारी किया जाता है। आपका रनटाइम आपके OS से जब भी आवश्यकता हो अधिक ढेर स्थान के लिए पूछता है: जब सक्रिय आवंटन खाली स्थान से अधिक हो जाता है। तो जैसे ही आपका प्रोग्राम शुरू होगा आपका ढेर आकार शायद बढ़ेगा। यह सामान्य है।

अधिकांश प्रोग्राम बहुत सी वस्तुओं को आवंटित और जारी करते हैं क्योंकि वे अपना काम करते हैं, इसलिए आपको अपने ढेर के% उपयोग को अनुकूलित करने का प्रयास नहीं करना चाहिए। जब आपका प्रोग्राम स्थिर अवस्था में चल रहा होता है - यानी, इसके शुरू होने के बाद - आप देखेंगे कि% उपयोग तब तक रेंगता रहता है जब तक कि कचरा संग्रह नहीं हो जाता, और फिर वापस गिर जाता है। उदाहरण के लिए, एक नोडज/एक्सप्रेस वेब सर्वर प्रत्येक आने वाले अनुरोध के लिए req और res ऑब्जेक्ट आवंटित करता है, फिर उनका उपयोग करता है, फिर उन्हें छोड़ देता है ताकि कचरा संग्रहकर्ता अपनी रैम को पुनः प्राप्त कर सके।

यदि आपके आवंटित ढेर का आकार मिनटों या घंटों में बढ़ता रहता है, तो संभवतः आपके पास स्मृति रिसाव है। यह एक प्रोग्रामिंग बग है: एक समस्या जिसे हल करने के लिए आपको अपना सर्वश्रेष्ठ प्रयास करना चाहिए। आपको यह देखना चाहिए कि यह आपकी एप्लिकेशन भाषा के लिए कैसे काम करता है। इसके अलावा, ढेर के उपयोग के बारे में ज्यादा चिंता न करें।

सक्रिय अनुरोध फ़ाइल लेखकों और टीसीपी कनेक्शन जैसे विभिन्न अतुल्यकालिक वस्तुओं के माध्यम से किए जा रहे कार्य की गणना करते हैं। जब तक आपका कार्यक्रम बहुत व्यस्त न हो यह शून्य के करीब रहता है।

यदि आपका प्रोग्राम गणना करता है तो लूप विलंब पर नज़र रखें। यदि यह रेंगता है, तो कुछ गणना फ़ंक्शन जावास्क्रिप्ट को हॉगिंग कर रहा है।

2
O. Jones 10 अक्टूबर 2020, 18:50