मेमोरी मेमोरी उपयोग के लिए सरल उपकरण?


14

क्या कोई स्क्रिप्ट है जो मेमोरी उपयोग को ग्राफ़ के रूप में दिखाएगा, उदाहरण के लिए पाई-चार्ट के रूप में, प्रत्येक प्रक्रिया एक अलग टुकड़ा होने के साथ?

मैं मुनिन जैसी किसी चीज़ की तलाश में नहीं हूँ समय के साथ मेमोरी के उपयोग के लिए , बल्कि समय-समय पर मेमोरी प्रक्रिया के प्रति-उपयोग को दिखाता हूँ।

मेरे अनुरोध को और अधिक अस्पष्ट बनाने के लिए, यह एक हेडलेस सर्वर (इसलिए कोई एक्स एप्लिकेशन नहीं) के लिए है। सबसे सरल तरीका एक पीएनजी फ़ाइल, या संभवतः एक HTML फ़ाइल लिखना होगा (जो जावास्क्रिप्ट का उपयोग कर सकता है प्रक्रियाओं को छानने की अनुमति, ग्राफ़-प्रकार और इसी तरह के बीच बदलते हुए)

जवाबों:


13

प्रति मिनट मेमोरी अकाउंटिंग एक मिनट में कई कारणों से मुश्किल होती है। सरल निगरानी के लिए, gkrellmd, या nagios स्क्रिप्ट संभवतः पर्याप्त है। यदि आप अधिक सटीकता चाहते हैं, तो आपको कठिन दिखने की आवश्यकता होगी।

smem आनुपातिक सेट आकार की अवधारणा का परिचय देता है :

क्योंकि भौतिक मेमोरी के बड़े हिस्से आम तौर पर कई अनुप्रयोगों के बीच साझा किए जाते हैं, निवासी सेट आकार (आरएसएस) के रूप में ज्ञात मेमोरी उपयोग के मानक माप महत्वपूर्ण रूप से स्मृति उपयोग को अधिलेखित करेंगे। पीएसएस इसके बजाय यथार्थवादी माप देने के लिए प्रत्येक साझा क्षेत्र के प्रत्येक एप्लिकेशन के "उचित शेयर" को मापता है।

उदाहरण: आप गनोम शुरू करते हैं, जिससे कई प्रक्रियाएं शुरू होती हैं, प्रत्येक एपलेट और प्रोग्राम के लिए। वे सभी लिबरलिग से जुड़ते हैं। Linux, libglib को मेमोरी के एक ब्लॉक में लोड करता है और इसे हर उस प्रक्रिया में मैप करता है, जो libglib चाहता है। Naive मेमोरी अकाउंटिंग, इसे जोड़ने वाली हर प्रक्रिया के खिलाफ पूर्ण लीबगल आकार की गणना करता है।

smem वास्तविकता का एक निकट चित्र देने के लिए, इसका उपयोग करने वाली प्रक्रियाओं के बीच libglib की लागत को विभाजित करता है। इसमें मेमोरी उपयोग (वेबसाइट से) प्रदर्शित करने के लिए कई विकल्प हैं:

  1. बुनियादी प्रक्रिया की जानकारी smem दिखाएं
  2. सिस्टम दृश्य smem -R 4G -K / पाथ / to / vmlinux -w
  3. कुल योग और प्रतिशत smem -t -p दिखाएँ
  4. अलग कॉलम दिखाओ sm -c "नाम यूजर ps"
  5. Smem -M libxml की मैपिंग द्वारा फ़िल्टर की गई प्रक्रियाएँ दिखाएँ
  6. प्रक्रिया smem -m -P [e] volution द्वारा फ़िल्टर किए गए मैपिंग दिखाएं
  7. कैप्चर टारबॉल स्मैम - सोर्स कैप्चर.tar.gz से डेटा पढ़ें
  8. Pid smem --bar pid -c "pss uss" द्वारा लेबल किया गया एक बार चार्ट दिखाएं
  9. आरएसएस के पाई चार्ट को smem --pie name -s rss नाम से लेबल करें

हालाँकि, आपको हालिया कर्नेल (> 2.6.27) की आवश्यकता होगी।


1
हाँ, उनका सुझाव है कि 2.6.27 यथोचित हाल ही में बहुत हँसा है। एकमात्र डिस्ट्रोस जो मुझे पता है कि एक नए कर्नेल के साथ जहाज फेडोरा 10 और उबंटू 9.01 हैं।
डेव चेनी

9.04; Ubuntu 8.10 2.6.27 के साथ भेज दिया गया, लेकिन 2.6.30 rc3 में है।
jldugger

मेरी क्षमा याचना, मैंने आरएचईएल भूमि में लंबे समय तक बिताया है, जहां हाल ही में 2.6.18 माना जाता है।
डेव चेनी

5

शेल्फ से कुछ भी नहीं सोच सकते

हालाँकि, PHP स्क्रिप्ट का एक कॉम्बो ps -AH v निष्पादित करता है awk '{$ 8, $ 9, $ 10} प्रिंट करें' और pChart के साथ इसका उपयोग करने से आपको एक वेब पेज मिल सकता है जो आप देख रहे हैं? (Kb में उपयोग, कुल और प्रक्रिया का नाम प्रतिशत)


1
+1, मैंने Google चार्ट एपीआई के साथ उस बारे में बात की। :)
नोड

अच्छी बात। गूगल चार्ट एपीआई के साथ काम करने की जल्दी है ...
मार्क रेगेन्सबर्ग



1

यह स्वयं करो। RRD डेटाबेस को अपडेट करने वाली एक सरल शेल स्क्रिप्ट बनाएं। फिर rrdtool का उपयोग करके एक ग्राफ़ बनाएं।


1

यदि आप वास्तव में विस्तार के निचले स्तर पर हैं, तो संग्रह को मत भूलना। यहां प्रति प्रक्रिया मेमोरी उपयोग के प्रकारों का उदाहरण दिया जा सकता है जो रिपोर्ट कर सकते हैं:

RECORD 1 cag-dl585-02 (1244758290.002) (थू जून 11 18:11:30 2009)

प्रक्रिया सारांश (काउंटर हैं / सेकंड)
# PID उपयोगकर्ता S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinF कमांड
 9089 रूट एस 66856K 0 2328K 1440K 212K 736K 6812K 0 0 Sendmail:
 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 प्रेषक:
 9108 रूट एस 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
 9120 रूट एस 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
 9173 xfs एस 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs

यदि आप विशिष्ट प्रक्रियाओं में रुचि रखते हैं तो आप उपयुक्त फ़िल्टर निर्दिष्ट कर सकते हैं (जिसमें थ्रेड दिखाने के लिए स्विच भी शामिल है)।

और यदि आप सामान्य रूप से मेमोरी में रुचि रखते हैं तो यह स्लैब डिटेल भी दिखा सकता है और यहां तक ​​कि एक vmstat प्रारूप आउटपुट भी है। जब आप मौजूदा उपकरण पहले से ही ऐसा करते हैं तो आप vmstat प्रारूप में डेटा क्यों दिखाना चाहेंगे? यह आसान है - सामूहिक रूप से आप किसी फ़ाइल में आँकड़े लॉग कर सकते हैं और बाद में इसे कई प्रारूपों में वापस खेल सकते हैं।

इसे आज़माएं, आप इसे पसंद करेंगे


1
  1. इस प्रक्रिया को पूरा करें।
  2. आउटपुट को पार्स करें और टेक्स्ट फ़ाइल में अल्पविराम से अलग प्रारूप में सहेजें।
  3. एक्सेल में अल्पविराम से अलग फ़ाइल खोलें।
  4. एक्सेल की चार्ट उपयोगिता का उपयोग करके उस डेटा के लिए ग्राफ को ड्रा करें।

यदि आप अलग-अलग समय अंतराल पर मेमोरी स्नैपशॉट चाहते हैं ... वांछित अंतराल पर क्रोन जॉब सेट करें और स्क्रिप्ट चलाएं।

उम्मीद है की वो मदद करदे....


0

यह वही नहीं है जो आप खोज रहे हैं, लेकिन शायद आप इसे इस संदर्भ ("प्रति प्रक्रिया मेमोरी उपयोग" के लिए देखें) का उपयोग करके अपनी आवश्यकताओं के लिए अनुकूलित कर सकते हैं ।




0

मैं अधिक विस्तार में नहीं आया, लेकिन कलेक्ट में डिमाइटर से अलग आउटपुट उत्पन्न करने का एक विकल्प है, इसलिए gnuplot के मामले में, आप बस इसमें अपना डेटा रिक्त स्थान के साथ उत्पन्न करते हैं और आप सभी सेट हो जाते हैं। यह भी अच्छी तरह से एक्सेल में लोड होगा। यदि आप कॉमा चाहते हैं तो आप सीमांकक को बदल सकते हैं और यदि आप वास्तव में रुट रूट करना चाहते हैं (बस सावधान रहें क्योंकि प्लॉट डेटा से मेल नहीं खाते हैं!), आप परिधि को कॉलन में बदल सकते हैं और यहां तक ​​कि यूटीसी के लिए टाइमस्टैम्प भी बदल सकते हैं। -निशान


0

kar, sar डेटा पर आधारित है, लेकिन यह java आधारित है, इसलिए कमोबेश प्लेटफ़ॉर्म स्वतंत्र है और आपको डेटा लाने के लिए किसी दूरस्थ होस्ट को ssh करने की अनुमति देगा।

http://ksar.atomique.net/


0

क्या phpsysinfo आपको प्रक्रिया की जानकारी किसी तरह देखने की क्षमता नहीं देता है?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.