如何查看 Linux 进程的内存使用情况?

如何查看 Linux 进程的内存使用情况?

如何查看 Linux 进程的内存使用情况?

答案1

你可能想看看“pmap”,例如

pmap -d [PROCESS ID]

在底部,您将看到共享的内存量以及进程私有的内存量。例如:有些应用程序看起来使用了大量内存,但实际上只是将大量共享库计入了计算。

答案2

在 Linux 上::top[i]启用列排序。 [<][>]移动排序列。请注意,按[z] [x] [y] [X] [Y]更改排序突出显示/颜色样式可更改不那么秘密的颜色模式。

freeps auv也显示交换,sar(sysstat/psacct)非常适合趋势分析。 slabtopvmstat对于内核来说。一般来说,watch可以快速轻松地监控任意命令,但会浪费进程watch -n0.3 'ps auv | grep top' watch -n5 'lsof | grep top | grep -v grep | wc -l'。快速、可重复使用的脚本通常是更好的选择。

为了在从源代码编译时真正深入研究,请使用 google perftools 中的 tcmalloc。

要了解持续趋势,请查看collectdcacti

在Mac上:

htop对阵top

  • 驻留集大小:1530 1770(误差<10)
  • 打开文件:8 9

一小时后连续采集 10 个样本的平均值。如果我遗漏了某些内容(我可能遗漏了),请告诉我。

答案3

ps -o vsz,rss,%mem -p $PROCESS_ID

这将显示程序已请求的内存量(虚拟集大小)、当前存储在 RAM 中的内存量(驻留集大小)以及占总 RAM 的百分比。

有关前两个数字的解释(包括分析实际程序行为的示例),请阅读此文分析内存泄漏的案例研究如果这还不够,至少读一下“虚拟内存简介”部分。

计算程序的驻留集大小因共享内存而变得复杂。Devin 很好地解释了如何可以使用 pmap 来计算共享内存确定启动另一个过程的边际成本。

答案4

ps aux # look at mem% and rss and vsz

相关内容