![有没有什么工具可以帮助我轻松监控 Linux 上每个进程的内存使用情况?](https://linux22.com/image/595002/%E6%9C%89%E6%B2%A1%E6%9C%89%E4%BB%80%E4%B9%88%E5%B7%A5%E5%85%B7%E5%8F%AF%E4%BB%A5%E5%B8%AE%E5%8A%A9%E6%88%91%E8%BD%BB%E6%9D%BE%E7%9B%91%E6%8E%A7%20Linux%20%E4%B8%8A%E6%AF%8F%E4%B8%AA%E8%BF%9B%E7%A8%8B%E7%9A%84%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5%EF%BC%9F.png)
这个问题与如何查看 Linux 进程的内存使用情况。
此外,该top
命令并没有给出确切的内存使用情况,而只是给出了一个进程使用的百分比,那么有没有什么强大的工具可以帮助我轻松监控 Linux 上每个进程的内存使用情况?
答案1
嗯,怎么样top
?
VIRT
、RES
和列SHR
(在我使用过的每个 top 版本中默认存在)列出了所消耗的内存(以 kb 为单位),这正是您要找的内容。
答案2
我使用 htop。
额外的角色......
答案3
如果您出于某种原因不喜欢top
,您还可以使用来监视正在运行的进程(以及任何其他内容)的内存使用情况Cacti
,这也会为您提供很好的视觉输出。
事实上,Cacti 论坛上有人为这个事情写了一个脚本……一张图表展示正在运行的进程的内存使用情况。它是为 Windows 设计的,但在 Linux 中使用 Cacti 也相当容易(甚至更容易)地完成。
答案4
简短的回答是“不”。
分配给进程的内存区域可能是只读、写时复制或可写的。只有在可写(非共享)内存的情况下,它才会直接分配给进程。只读和 COW 页面很难被计算为只被多次引用(因为每个进程看到的物理页面位于不同的地址)。
ps_mem.py比 ps / top 等做得更好 - 但距离准确衡量内存的实际情况还有很长的路要走 - 特别是在运行大量服务器的机器上。