gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:31:21 26 4
gpt4 key购买 nike

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

最佳答案

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

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

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

  • Rss:常驻内存使用,进程使用的所有内存,包括该进程与其他进程共享的所有内存。它不包括交换;
  • Shared:该进程与其他进程共享的内存;
  • Private:本进程使用的私有(private)内存,可以在这里查找内存泄漏;
  • Swap:进程使用的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/3853655/

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