我有一个基于arm的嵌入式系统。我刚刚提到内核(2.6.34)。下面是一些命令输出。我无法解释整个RAM(128 m)。
内核似乎正在使用128 MB-124368 KB=6704 KB。
Cache = 1672 kB
Slab = 3000 kB
但memfree只有100812kb。如何计算剩余内存(大约18.5 MB)?
同时,作为1512 KB的值,committed_表示什么?
# cat /proc/meminfo
MemTotal: 124368 kB
MemFree: 100812 kB
Buffers: 0 kB
Cached: 1672 kB
SwapCached: 0 kB
Active: 1692 kB
Inactive: 284 kB
Active(anon): 304 kB
Inactive(anon): 0 kB
Active(file): 1388 kB
Inactive(file): 284 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 328 kB
Mapped: 856 kB
Shmem: 0 kB
Slab: 3000 kB
SReclaimable: 1116 kB
SUnreclaim: 1884 kB
KernelStack: 248 kB
PageTables: 48 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 62184 kB
Committed_AS: 1512 kB
VmallocTotal: 876544 kB
VmallocUsed: 1848 kB
VmallocChunk: 873908 kB
# free
total used free shared buffers
Mem: 124368 23584 100784 0 0
-/+ buffers: 23584 100784
Swap: 0 0 0
# lsmod
Module Size Used by Not tainted
# ps
PID USER VSZ STAT COMMAND
1 0 1556 S init
2 0 0 SW [kthreadd]
3 0 0 SW [ksoftirqd/0]
4 0 0 SW [watchdog/0]
5 0 0 SW [events/0]
6 0 0 SW [khelper]
10 0 0 SW [async/mgr]
200 0 0 SW [sync_supers]
202 0 0 SW [bdi-default]
203 0 0 SW [kblockd/0]
209 0 0 SW [ata/0]
210 0 0 SW [ata_aux]
211 0 0 SW [pxa2xx-spi.2]
218 0 0 SW [khubd]
221 0 0 SW [kseriod]
234 0 0 SW [kmmcd]
253 0 0 SW [rpciod/0]
261 0 0 SW [khungtaskd]
262 0 0 SW [kswapd0]
264 0 0 SW [aio/0]
265 0 0 SW [nfsiod]
267 0 0 SW [crypto/0]
414 0 0 SW [mtdblockd]
457 0 0 SW [ubi_bgt0d]
537 0 0 SW [usbhid_resumer]
563 0 0 SW [ubifs_bgt0_0]
581 0 1556 S telnetd -l /bin/sh
586 0 1948 S < udevd -d
2956 0 1560 S -/bin/sh
3986 0 0 SW [flush-ubifs_0_0]
3990 0 4216 R ps
最佳答案
(这是一个评论)
Committed_AS: An estimate of how much RAM you would need to make a
99.99% guarantee that there never is OOM (out of memory)
for this workload. Normally the kernel will overcommit
memory. That means, say you do a 1GB malloc, nothing
happens, really. Only when you start USING that malloc
memory you will get real memory on demand, and just as
much as you use. So you sort of take a mortgage and hope
the bank doesn't go bust. Other cases might include when
you mmap a file that's shared only when you write to it
and you get a private copy of that data. While it normally
is shared between processes. The Committed_AS is a
guesstimate of how much RAM/swap you would need
worst-case.
http://lwn.net/Articles/28345/
关于linux - 嵌入式系统:我的内存在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11851325/