【问题标题】:How to monitor memory usage of all processes in Linux?如何监控 Linux 中所有进程的内存使用情况?
【发布时间】:2021-04-04 09:11:19
【问题描述】:

我正在开发一个在嵌入式 Linux (Debian Buster) 上运行的程序,我发现该程序有时会出现性能问题。经过一些调试过程,我怀疑问题可能不在我的程序中。相反,操作系统以某种方式开始进行内存交换,我的程序被交换到文件系统。

因此,我使用代码here 进行验证。事实证明,我的程序在大约 500 秒后占用的物理内存要少得多,并且符合假设。

现在我想找出那个进程突然占用大量内存,但我不知道如何。

是否有继续监控系统所有进程(或前 10 个)的内存使用情况并转储到日志文件?任何工具或命令都会很好。

谢谢。

【问题讨论】:

    标签: embedded-linux system-monitoring


    【解决方案1】:

    我正在开发一个在嵌入式 Linux 上运行的程序

    如果您能指定您正在使用的嵌入式 Linux,这将很有帮助。 基于此,有人可以推荐一些工具。

    对于 Linux,我想说,您可以使用:

    top -p [PID]
    

    您可以通过以下方式获取 PID:

    ps [options]
    

    不知道在使用命令行时是否有问题?

    转储到日志文件

    我认为您可以使用 grep 将终端输出转储到您可以使用 touch 命令创建的日志文件中。

    【讨论】:

    • 感谢您的回复。发行版是 Debian (Buster)。
    猜你喜欢
    • 2010-10-08
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2011-04-30
    相关资源
    最近更新 更多