如何监控进程消耗的内存?

Hom*_*ith 19 monitor memory-usage 12.04

我有一个进程,我想查看它在运行时消耗了多少内存。

现在我这样做:

ps faux | grep casper
Run Code Online (Sandbox Code Playgroud)

但这只是给了我那一刻的信息。很高兴看到该值随着脚本的进行而发生变化。

我有什么办法可以做到这一点?

Jul*_*ing 20

方法一

跑:

top
Run Code Online (Sandbox Code Playgroud)

检查程序的 PID(第一列),然后运行:

top -p PID
Run Code Online (Sandbox Code Playgroud)

方法二

将其粘贴到终端或将其保存为 mem_usage.sh 并从终端运行它。

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done
Run Code Online (Sandbox Code Playgroud)


yil*_*lmi 7

要仅监控您的流程,您可以检查/proc/PID/status or /proc/PID/statm.

关于/proc/PID/statm

完成后cat /proc/PID/statm你应该看到这个:

611450 185001 883 18 0 593431 0
Run Code Online (Sandbox Code Playgroud)

解释:

  1. 大小:- 总程序大小(611450 X 4096/1024 = 2445800kB = 2388M)
  2. 常驻:-常驻集大小(185001 X 4096/1024 = 740004kB = 722M)
  3. 共享 :- 共享页面 (883 X 4096 = 3532)
  4. trs :- 文本(代码)(18 X 4096/1024 = 72kB = VmExe)
  5. drs :- 数据/堆栈
  6. lrs :- 库 (593431 X 4096/1024 = 2373724kB = VmData +VmStk)
  7. dt :- 脏页

您还可以使用date和记录执行循环的进程的内存活动cat


小智 5

你可以使用 top

man top
Run Code Online (Sandbox Code Playgroud)

该程序允许您对资源使用情况进行排序,其中包括 RSS、VSZ、CPU 等……它非常有用。

或者,要更详细地了解内存使用情况,请尝试“pmap”

man pmap
Run Code Online (Sandbox Code Playgroud)

用法示例:

pmap -x 1234
Run Code Online (Sandbox Code Playgroud)