从免费-m我可以看到有377MB的内存和1649MB的机器上(其中1567由Ubuntu的caching)免费。 请参阅下面的实际输出:
caz@riskvm:~$ free -m total used free shared buffers cached Mem: 2026 1975 51 0 30 1567 -/+ buffers/cache: 377 1649 Swap: 3153 87 3065
但是,当我看到顶部的输出,我可以看到RES列中使用1GB和273MB的进程。 RES表示从顶层手册页驻留在未交换的物理内存中。
top - 11:45:26 up 1 day, 38 min, 3 users, load average: 0.27, 0.21, 0.23 Tasks: 125 total, 1 running, 123 sleeping, 0 stopped, 1 zombie Cpu(s): 0.2%us, 6.6%sy, 0.0%ni, 92.8%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2075560k total, 2023796k used, 51764k free, 31264k buffers Swap: 3229024k total, 89764k used, 3139260k free, 1605400k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6689 root 20 0 1242m 1.0g 1.0g S 13 51.1 292:59.21 vmware-vmx 6658 root 20 0 492m 273m 262m S 2 13.5 41:16.75 vmware-vmx 1 root 20 0 2844 536 484 S 0 0.0 0:01.50 init 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0 0.0 0:00.02 migration/0
我明白其中一些是由其他进程(共享对象等)共享的。 但是,如果有其他进程共享1GB的内存,那肯定至less要用到这么多呢?
如何免费报告377MB内存,当我看到顶部我看到使用1GB和更多的RES内存的进程?
top
报告的常驻内存包括诸如图形卡,nics和其他“非ram”内存中的mmaped帧缓冲区。 free
报告的内存是严格的内存+交换。