gpt4 book ai didi

linux - 在 Linux 中,如何判断进程使用了​​多少内存?

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:29 25 4
gpt4 key购买 nike

我认为我的 LAMP 应用程序可能存在内存泄漏(内存用完,交换开始使用等)。如果我能看到各种进程使用了​​多少内存,它可能会帮助我解决我的问题。有没有办法让我在 *nix 中看到这些信息?

最佳答案

获得正确的内存使用比人们想象的要棘手。我最好的办法could find is :

echo 0 $(awk '/TYPE/ {print "+", $2}' /proc/`pidof PROCESS`/smaps) | bc

其中“PROCESS”是您要检查的进程的名称,“TYPE”是以下之一:

  • Rss:常驻内存使用情况,本进程使用的所有内存,包括本进程与其他进程共享的所有内存。它不包括掉期;
  • Shared:本进程与其他进程共享的内存;
  • Private:该进程使用的私有(private)内存,可以在这里查找内存泄漏;
  • Swap:交换进程使用的内存;
  • Pss:Proportional Set Size,一个很好的整体内存指标。这是为共享调整的 Rss:如果一个进程有 1MiB 私有(private)和 20MiB 在其他 10 个进程之间共享,则 Pss 为 1 + 20/10 = 3MiB

其他有效值是Size(即虚拟大小,几乎没有意义)和Referenced(当前标记为引用或访问的内存量)。

您可以使用 watch 或其他一些 bash-script-fu 来关注您要监视的进程的这些值。

有关smaps的更多信息:http://www.kernel.org/doc/Documentation/filesystems/proc.txt .

关于linux - 在 Linux 中,如何判断进程使用了​​多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41261325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com