【问题标题】:how to monitor a processes memory usage over time - ubuntu [closed]如何随着时间的推移监视进程的内存使用情况 - ubuntu [关闭]
【发布时间】:2011-11-08 20:24:30
【问题描述】:

我想随着时间的推移在 unix 中观察给定进程,以了解内存增长的时间(这是一项长期运行的工作)

我想我能做到

ps -aux | grep PID

每 5 分钟从 cron 运行一次,但似乎应该有更好的方法。

有没有办法可以使用 sar 来做到这一点?

【问题讨论】:

  • 您的问题属于 ubuntu 或超级用户
  • 我正在考虑这个问题,但从开发人员的角度来看,这是一个开发问题,我的进程正在泄漏内存,我不是 SA ......我想我可以在那里尝试,但似乎两者都相关......
  • stackoverflow.com/questions/563168/… 的副本?还建议使用top-p -b -d 选项。
  • @Joelio - 有一些工具可以监控泄漏。

标签: linux memory ubuntu monitoring


【解决方案1】:

我使用以下内容:

$ ps -o rss $(pgrep executablename)

把它放在一个while循环中,或者使用watch随着时间的推移和tail一起监控它。您也可以将它放到一个文件中,让 gnuplot 为您绘制它并每隔几秒刷新一次。

【讨论】:

  • 错误答案。 RSS 不是内存使用量。
  • @poige,你是什么意思? - 进程的 RSS 实内存(驻留集)大小(以千字节为单位)。这个数字等于内存中工作段和代码段页数的总和乘以 4。请记住,代码段页在所有当前运行的程序实例之间共享。如果有 26 个 ksh 进程正在运行,则 ksh 可执行程序的任何给定页面只有一个副本在内存中,但 ps 命令会将该代码段大小报告为 ksh 程序每个实例的 RSS 的一部分。
  • 进程可以部分交换(分页),实际上它的RSS会更少。
  • 如果可执行文件名没有运行,上面的内容就相当于ps -o rss。在 PID 列表之前使用 -p 似乎更安全,因为它明确要求 PIDS,因此会失败。
猜你喜欢
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2017-10-29
  • 2019-01-25
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多