मेरे पास एक लिनक्स डिमन है जो कुछ बच्चों को फोर्क करता है और उन्हें क्रैश के लिए मॉनीटर करता है (आवश्यकतानुसार पुनरारंभ करना)। यह अच्छा होगा अगर माता-पिता बाल प्रक्रियाओं के स्मृति उपयोग की निगरानी कर सकें - मेमोरी लीक का पता लगाने के लिए और एक निश्चित आकार से आगे जाने पर बाल प्रक्रियाओं को पुनरारंभ करें। मैं यह कैसे कर सकता हूं?बाल प्रक्रिया के स्मृति उपयोग की निगरानी
उत्तर
आप/proc/{पीआईडी}/स्थिति से बाहर विस्तृत स्मृति में जानकारी प्राप्त करने में सक्षम होना चाहिए:
Name: bash
State: S (sleeping)
Tgid: 6053
Pid: 6053
PPid: 6050
TracerPid: 0
Uid: 1007 1007 1007 1007
Gid: 1007 1007 1007 1007
FDSize: 256
Groups: 1007
VmPeak: 48076 kB
VmSize: 48044 kB
VmLck: 0 kB
VmHWM: 4932 kB
VmRSS: 2812 kB
VmData: 2232 kB
VmStk: 84 kB
VmExe: 832 kB
VmLib: 6468 kB
VmPTE: 108 kB
Threads: 1
SigQ: 0/8190
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001010
SigCgt: 0000000188020001
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
Cpus_allowed: 0f
Mems_allowed: 00000000,00000001
voluntary_ctxt_switches: 69227121
nonvoluntary_ctxt_switches: 19071
तथापि, जब तक मेमोरी लीक नाटकीय हैं, यह मुश्किल के लिए उन्हें पता लगाने के लिए प्रक्रिया आंकड़े देखते समय है, क्योंकि मॉलोक और फ्री आमतौर पर सिस्टम कॉल (ब्रैक/एसआरबीके) से काफी अमूर्त होते हैं जिनके साथ वे मेल खाते हैं।
आप/proc/$ {PID}/statm में भी चेक कर सकते हैं।
आप अपनी प्रक्रिया के साथ समानांतर में एक मॉनिटर स्क्रिप्ट चलाना vmstat रखने का प्रयास कर सकते हैं (ध्यान दें कि यह एक अच्छा विचार नहीं है कि आप इस स्क्रिप्ट को कई बार चला रहे हैं क्योंकि आपको एकाधिक vmstat प्रतियां मिलेंगी)। फिर यह मॉनीटर स्क्रिप्ट ओएस के उपलब्ध स्मृति की मात्रा प्राप्त करने के लिए मुफ्त मेमोरी प्लस बफर और कैश आकार ले सकती है और आप इसे ट्रैक कर सकते हैं। फिर यदि वह कुछ सीमा से नीचे हो जाता है तो आप ps -e -o को कॉल करके सबसे बड़ी प्रक्रियाओं की जांच कर सकते हैं ... (विवरण के लिए मैन पेज देखें लेकिन बनाम, पीसीपीयू, उपयोगकर्ता, पिड, एक शुरुआती बिंदु के रूप में तर्क दें)।
मैं इस मॉनीटर को एक अलग प्रक्रिया के रूप में चलाने की सलाह दूंगा और जब यह बहुत बड़ा हो जाता है तो यह नकली प्रक्रिया को मार देगा। आप
-u user-name
पीएस के पैरामीटर का उपयोग कर निगरानी की प्रक्रियाओं के सेट को प्रतिबंधित कर सकते हैं।
यह सब एक हैक (यूके अर्थ) हालांकि - सही समाधान हालांकि लीक को ठीक करना है, मान लीजिए कि आपके पास कोड है।
मैं एक एकीकृत समाधान पसंद करता हूं जो बाहरी कार्यक्रमों/स्क्रिप्ट पर भरोसा नहीं करता है। मेमोरी लीक को ठीक करने के लिए सही काम है, लेकिन असली दुनिया में आपको कभी-कभी अस्थायी रूप से समझौता करना पड़ता है। साथ ही, जब आप बाहरी नियंत्रण चलाते हैं तो मैं मामलों की कल्पना कर सकता हूं जो आपके नियंत्रण में नहीं है (लगता है कि apache एक php स्क्रिप्ट चला रहा है)। –
एक एकल, एकीकृत समाधान के साथ समस्या यह है कि यह तेजी से जटिल हो जाता है। अलग-अलग कार्यों को करने के लिए अलग-अलग कार्यक्रम होने का लाभ यह है कि प्रत्येक अलग-अलग अपेक्षाकृत सरल और डीबग और तैनाती में आसान है। एक एकीकृत समाधान पहले अच्छा लगता है (संचार के साथ कोई समस्या नहीं, आपको पता है कि यह चल रहा है 'मुख्य कार्यक्रम चल रहा है आदि) लेकिन जैसे ही आपका सिस्टम बड़ा हो जाता है सादगी समस्या अधिक से अधिक महत्वपूर्ण हो जाएगी – Nick
- 1. किसी प्रक्रिया के नेटवर्क उपयोग की निगरानी करें?
- 2. रेडिस - मेमोरी उपयोग की निगरानी
- 3. सी ++ डिमन प्रक्रिया की निगरानी कैसे करें?
- 4. एलडी_PRELOADed पुस्तकालयों और बाल प्रक्रिया
- 5. ग्राफिक्समैजिक/छविमैगिक बाल प्रक्रिया
- 6. जावा - मैं अन्य प्रक्रिया के मेमोरी और सीपीयू उपयोग की निगरानी कैसे कर सकता हूं
- 7. iPhone डेटा उपयोग की निगरानी
- 8. node.js में बाल प्रक्रिया मेमोरी उपयोग कैसे प्राप्त करें?
- 9. कैसे Heroku पर स्मृति के उपयोग (Node.js) की निगरानी के लिए
- 10. जावा एप्लिकेशन द्वारा अपने मेमोरी उपयोग की निगरानी
- 11. .NET से अप्रबंधित बाल प्रक्रिया
- 12. PostgreSQL बैकएंड प्रक्रिया उच्च स्मृति उपयोग मुद्दा
- 13. विभिन्न जावा ऑब्जेक्ट्स द्वारा स्मृति मेमोरी खपत की निगरानी
- 14. जावा मेमोरी उपयोग की निगरानी कैसे करें?
- 15. मेमोरी मैप की गई फ़ाइलें: स्मृति उपयोग की निगरानी कैसे करें
- 16. एक बच्चे की प्रक्रिया का मेमोरी उपयोग?
- 17. विंडोज़ में प्रक्रिया/प्रोग्राम निष्पादन की निगरानी कैसे करें?
- 18. ओएस एक्स पर एक प्रक्रिया की निगरानी कैसे करें?
- 19. बाद में उपयोग के लिए एक प्रक्रिया 'स्मृति सहेजें?
- 20. लिनक्स में मूल प्रक्रिया की हत्या के बाद बाल प्रक्रिया अभी भी जिंदा क्यों है?
- 21. एक प्रक्रिया के सीपीयू उपयोग और लिनक्स में अपने सभी बाल प्रक्रियाओं की गणना कैसे करें?
- 22. मैं लिनक्स में PHP के मेमोरी उपयोग की निगरानी कैसे कर सकता हूं?
- 23. बाल प्रक्रिया पर Node.js कमांड लाइन डीबगर का उपयोग करें?
- 24. निगरानी/proc/diskstats की निगरानी के लिए पायथन लाइब्रेरी?
- 25. सीमित Node.js की स्मृति उपयोग
- 26. जावा आवेदन की स्मृति और CPU उपयोग
- 27. सीपीयू तापमान की निगरानी
- 28. एक लटका बाल प्रक्रिया को मारें
- 29. नेटवर्क यातायात की निगरानी
- 30. लीनिंगेन - बाल प्रक्रिया को कैसे मारना है?
ऐसा करने के लिए कोई सिस्टम कॉल नहीं है? पार्सिंग फाइलें जानकारी प्राप्त करने के लिए एक बहुत गंदे तरीके की तरह लगती हैं। –
इस प्रकार पीएस और दोस्तों को उनकी जानकारी मिलती है ... – WhirlWind
तो मुझे लगता है कि यह सबसे अच्छा तरीका है। धन्यवाद! –