मैं यह जानने के लिए एक अच्छा सूत्र जानने की कोशिश कर रहा हूं कि कितनी मेमोरी उपलब्ध है। मैं वर्तमान में निम्नलिखित सूत्र का उपयोग कर रहा हूं: freeMem = MemFree + Buffers + Cached - Shmem
। हालांकि, इस सूत्र के अनुसार मेरी एम्बेडेड प्रणाली स्मृति खो रही है। अब मैं सोच रहा हूं कि मेरे पास मेमोरी लीक है इसलिए मैंने कर्नेल में kmemleak
को सक्षम किया। mpatrol
के अनुसार, valgrind
, और coverity
मेरे पास उपयोगकर्ता की जगह में कोई रिसाव नहीं है। क्या कर्नेल स्पेस में कोई रिसाव है या मेरा फॉर्मूला बंद है? ध्यान दें कि मेरे पास इस डिवाइस के लिए कोई स्वैप नहीं है।लिनक्स कुल उपलब्ध स्मृति
MYBOX> cat /proc/meminfo
MemTotal: 2073348 kB
MemFree: 1388180 kB
Buffers: 137016 kB
Cached: 88772 kB
SwapCached: 0 kB
Active: 589124 kB
Inactive: 44380 kB
Active(anon): 410236 kB
Inactive(anon): 1992 kB
Active(file): 178888 kB
Inactive(file): 42388 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 1310716 kB
HighFree: 811828 kB
LowTotal: 762632 kB
LowFree: 576352 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 64 kB
Writeback: 0 kB
AnonPages: 407712 kB
Mapped: 26140 kB
Shmem: 4516 kB
Slab: 40408 kB
SReclaimable: 8320 kB
SUnreclaim: 32088 kB
KernelStack: 1480 kB
PageTables: 1464 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1036672 kB
Committed_AS: 660508 kB
VmallocTotal: 237344 kB
VmallocUsed: 104556 kB
VmallocChunk: 126296 kB
खैर मैं प्रणाली, जबकि यह एक दो सप्ताह की अवधि में बेकार था निगरानी कर रहा था। सिस्टम उस हफ्ते में लगभग 10 एमबी नीचे था - यह बहुत अधिक प्रतीत नहीं होता है लेकिन सिस्टम को रीबूट किए बिना वर्षों तक चलने की जरूरत है। मुझे पूरा यकीन है कि एप्लिकेशन साफ़ हैं लेकिन मैं उन ड्राइवरों के बारे में सोच रहा था जिनका मैं उपयोग कर रहा हूं। क्या/proc/meminfo मुझे पूरे सिस्टम उपयोगकर्ता और कर्नेल स्पेस नहीं दिखाएगा? – atomicbaum
हाँ '/ proc/meminfo' पूरी चीज दिखाएगा, लेकिन आप लीक मेमोरी अनुमान लगाने के लिए इस से समीकरण नहीं बना सकते हैं। दूसरी ओर आप यह पता लगा सकते हैं कि अधिक से अधिक स्मृति का उपयोग किया जा रहा है, अगर आप यही कह रहे हैं। इस मामले में, अपना समीकरण बनाने की कोशिश करने के बजाय, आप यहां बताए गए 'free -m' कमांड का उपयोग कर सकते हैं: http://blog.scoutapp.com/articles/2010/01/11/free-memory-on -Linux-मुक्त एम-बनाम-proc-meminfo। यदि आप अभी भी उपलब्ध स्मृति को नीचे और नीचे देखते हैं तो निश्चित रूप से कुछ और अधिक मेमोरी खा रहा है (लेकिन जरूरी नहीं कि स्मृति लीक हो;) –
मुझे नहीं पता कि मैंने पहले क्यों नहीं देखा ... स्रोत को देखते हुए "फ्री" कमांड के लिए ऐसा लगता है कि सूत्र "kb_main_free + kb_main_buffers + kb_main_cached" है और यह/proc/meminfo से आता है जो पकड़ता है ... (sysinfo.c और free.c को देख रहा है)। – atomicbaum