我有个疑问。
我启动 ubuntu 并运行 free 命令。我将获得可用的总空间。假设为 100MB。
现在我运行一些应用程序。
过了一段时间,我再次运行 free 命令。现在有 80MB 了。
总使用内存为 20MB。有没有办法找出哪些应用程序使用了这 20 MB 内存。top 命令对此有帮助吗?
答案1
虽然我并不完全熟悉top
格式化的工作原理,但我可以提供一些解决方法。
附言
ps
命令随 procps 软件包一起提供,是系统上随时可用的标准实用程序之一。-aux
开关将输出系统上所有用户和程序的进程,而--sort %mem
用于按内存使用百分比对输出进行排序。简而言之:ps -aux --sort %mem
。
氢能顶盖
Htop 是 top 的一个变体,但外观和功能更出色(至少在我看来)。按F6可以按您想要的质量对输出进行排序,也可以按内存排序,还可以按百分比排序。
一些注意事项:至于为什么内存会被消耗这么多,您可能知道关闭程序并不总是意味着其进程已停止 - 它实际上可能会闲置并消耗您的内存。您可以使用htop
或ps
找到该进程的 pid,然后使用kill
命令或htop
内置 kill 函数将其杀死。尝试在系统监视器程序中使用进程优先级(右键单击该进程并将光标悬停在 Changer Priority 上)。虽然这与 CPU 使用率更相关,但 CPU 使用内存来处理每个命令,并且只有更简单的任务在内部寄存器中(如果我没记错的话,这是计算机科学入门课的内容)。
答案2
Top 显示活动进程,包括内存。
系统监视器是进行内存使用情况分析的用户友好型(GUI)方式(前提是应用程序仍然处于打开状态)。
另外,请注意,一旦程序在会话中使用了内存,它可能仍会保留在缓冲区中,直到另一个程序需要它为止。摘自手册:
free displays the total amount of free and used physical and swap memory
in the system, as well as the buffers used by the kernel.
因此,如果您关闭 Firefox,该内存可能会保留在缓存中,以防您想再次启动 Firefox。