如何在linux上监控内存的进程使用情况? 完全想知道每个进程从内存中获取了多少。
答案 0 :(得分:2)
这真的很难,因为Linux支持共享内存,这意味着任务与其他进程共享其部分或大部分内存。
更糟糕的是,它还支持虚拟内存,这意味着进程可以在内存中进行逻辑映射,但实际上当时并不在物理内存中。
线程实际上只是一个特殊情况,其中内存映射与另一个完全共享。
我们只有:
它们都不是我们想象的“内存使用”。
请注意,非驻留页面不一定要交换到交换区域 - 它们通常是需求加载的页面(例如来自mmap,库和可执行文件)尚未加载(或先前已加载然后被丢弃) )。
答案 1 :(得分:1)
使用“top”命令以交互方式查看此内容,或键入“ps aux”以获取所有进程的完整列表。然后,您可以对其进行grep以获取特定进程的确切统计信息,例如:“ps aux | grep apache”。
答案 2 :(得分:1)
通常很难确切知道Linux上的共享库应用程序正在使用多少内存 - 通常,您需要“ps aux”输出中的RSS列。
Here是一些可能有用的类似顶级的实用程序。
答案 3 :(得分:0)
我现在找不到,但我认为可以在/ proc /下找到一些信息, 在那些刚刚以数字命名的目录(过程中)。
因此对于具有pid 7365的进程,您可以开始查看/ proc / 7365 / status之类的内容。