我正在使用 SUSE,我有 31GB 的内存 Mem:总共 31908592k,已使用 31429632k,478960k 空闲,12176k 缓冲区 如何找出哪个进程占用了我所有的内存。
看起来你正在跑步free
,看着第一行,然后吓坏了。没关系; 很多人都这样做。
忽略输出的第一行free
。真的。Linux非常积极地从磁盘缓存数据,甚至包括“换出”的虚拟内存页面,在 RAM 中,所有缓存的数据在free
第一行都被视为“已使用” ,即使它可以在微秒内再次可用(或更少,这些天)如果需要。
您需要查看来自 的第二行输出free
,标记为-/+ buffers/cache:
。该行将告诉您运行程序实际占用了多少内存,而忽略了缓冲区和缓存目前正在使用的内容。
例如,我的机器当前显示:
total used free shared buffers cached
Mem: 3083924 2177300 906624 0 461344 837008
-/+ buffers/cache: 878948 2204976
Swap: 4000148 0 4000148
Run Code Online (Sandbox Code Playgroud)
尽管目前只有 906624 字节的 RAM 完全未使用,但还有额外的 461344 字节缓冲区和 837008 字节缓存数据,如果有更重要的事情(即几乎任何事情),它们可以或多或少地立即可用) 需要内存,总共有 2204976 字节可供我使用。
归档时间: |
|
查看次数: |
16068 次 |
最近记录: |