कर्नेल एक मिथ्या नाम का एक सा है। लिनक्स कर्नेल में कई प्रॉसेस / थ्रेड्स + मॉड्यूल शामिल होते हैं ( lsmod
इसलिए) एक पूरी तस्वीर पाने के लिए आपको पूरी बॉल को देखना होगा न कि केवल एक कंपोनेंट को।
संयोग से मेरा शो slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
यह slabtop
कहने के लिए मैन पेज भी था:
स्लैबटॉप स्टेटिस्टिक हेडर ट्रैक कर रहा है कि स्लैब के कितने बाइट्स का उपयोग किया जा रहा है और यह भौतिक मेमोरी का माप नहीं है। / Proc / meminfo फ़ाइल में 'स्लैब' फ़ील्ड उपयोग की गई स्लैब भौतिक मेमोरी के बारे में जानकारी ट्रैक कर रही है।
गिरते हुए कैश
मेरे प्रश्न के तहत टिप्पणियों में सुझाए गए @derobert के रूप में मेरे कैश को छोड़ना मेरे लिए निम्नलिखित है:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
एक 3 भेजना निम्न कार्य करता है: मुफ्त पेजचेस, डेंट्री और इनोड्स। मैं इस U & L Q & A शीर्षक में इस पर अधिक चर्चा करता हूं: क्या मेमोरी कैश और बफर को डंप करने का कोई तरीका या उपकरण हैं? "। तो मेरे अंतरिक्ष के 110MB का इस्तेमाल सिर्फ पेजचे, डेंट्री और इनोड्स के बारे में जानकारी बनाए रखने के लिए किया जा रहा था।
अतिरिक्त जानकारी
- यदि आप रुचि रखते हैं तो मुझे यह ब्लॉग पोस्ट मिला
slabtop
, जो थोड़ा और विवरण में चर्चा करता है। इसका शीर्षक है: दिन का लिनक्स कमांड: स्लैबटॉप ।
- स्लैब कैश की चर्चा यहां विकिपीडिया पर अधिक विस्तार से की गई है, जिसका शीर्षक है: स्लैब आवंटन ।
तो कितना RAM मेरा कर्नेल उपयोग कर रहा है?
यह तस्वीर मेरे लिए थोड़ी अजीब है, लेकिन यहां वे चीजें हैं जो मुझे लगता है कि हम जानते हैं।
पत्थर की पटिया
हम इस तकनीक का उपयोग करके स्लैब के उपयोग का एक स्नैपशॉट प्राप्त कर सकते हैं। अनिवार्य रूप से हम इस जानकारी को बाहर निकाल सकते हैं /proc/meminfo
।
$ grep Slab /proc/meminfo
Slab: 100728 kB
मॉड्यूल
इसके अलावा, हम कर्नेल मॉड्यूल के लिए एक आकार मान प्राप्त कर सकते हैं (यह स्पष्ट नहीं है कि यह डिस्क पर उनके आकार या रैम में कब है) /proc/modules
:
$ awk '{print $1 " " $2 }' /proc/modules | head -5
cpufreq_powersave 1154
tcp_lp 2111
aesni_intel 12131
cryptd 7111
aes_x86_64 7758
Slabinfo
इस खरीद संरचना में SLAB के बारे में अधिकांश विवरण सुलभ हैं /proc/slabinfo
:
$ less /proc/slabinfo | head -5
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack_ffff8801f2b30000 0 0 320 25 2 : tunables 0 0 0 : slabdata 0 0 0
fuse_request 100 125 632 25 4 : tunables 0 0 0 : slabdata 5 5 0
fuse_inode 21 21 768 21 4 : tunables 0 0 0 : slabdata 1 1 0
dmesg
जब आपका सिस्टम बूट होता है तो एक लाइन होती है जो लोड होने के बाद लिनक्स कर्नेल के मेमोरी उपयोग की रिपोर्ट करती है।
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
संदर्भ