【发布时间】:2010-02-11 08:04:40
【问题描述】:
是否有一个 shell 命令可以了解特定时刻正在使用多少内存以及每个进程正在使用多少内存、剩余多少虚拟内存等的详细信息?
【问题讨论】:
-
bash 无法在任何地方都适用:对于不同的操作系统,您需要不同的命令。
标签: bash memory shell memory-management
是否有一个 shell 命令可以了解特定时刻正在使用多少内存以及每个进程正在使用多少内存、剩余多少虚拟内存等的详细信息?
【问题讨论】:
标签: bash memory shell memory-management
对于“每个进程”,top:
PhysMem: 238M wired, 865M active, 549M inactive, 1652M used, 395M free.
VM: 162G vsize, 1039M framework vsize, 124775(0) pageins, 9149(0) pageouts.
PID COMMAND %CPU TIME #TH #WQ #POR #MREG RPRVT RSHRD RSIZE VPRVT VSIZE PGRP PPID STATE UID
7233 top 5.7 00:00.53 1/1 0 24 33 1328K 264K 1904K 17M 2378M 7233 3766 running 0
例如:
rprvt Resident private address space size.
rshrd Resident shared address space size.
rsize Resident memory size.
vsize Total memory size.
vprvt Private address space size.
【讨论】:
让我们也听听老经典,vmstat。
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 30160 15884 418680 281936 0 0 406 22 6 3 1 1 93 5
【讨论】:
取决于您的操作系统。在 Linux 中,free 回答了您三个问题中的两个。
~> free
total used free shared buffers cached
Mem: 904580 895128 9452 0 63700 777728
-/+ buffers/cache: 53700 850880
Swap: 506036 0 506036
“Swap”指的是虚拟内存。
【讨论】:
如果您使用的是 Linux,请尝试ps_mem.py。
【讨论】:
如果您使用的是最新的 Linux,那么cat /proc/$pid/smaps 就是生意。
如果您使用的是 OSX,请查看https://superuser.com/questions/97235/how-much-swap-is-a-given-mac-application-using。
【讨论】: