AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 4349
Accepted
Tony Meyer
Tony Meyer
Asked: 2009-05-05 14:04:03 +0800 CST2009-05-05 14:04:03 +0800 CST 2009-05-05 14:04:03 +0800 CST

如何确定分叉进程 (Linux) 使用的内存?

  • 772

从这个问题开始。Debian,如果这很重要的话。

我知道一些内存在分叉的进程之间共享。那么如何确定一个进程/一组分叉进程使用了​​多少内存?

使用这个类似问题中推荐的 smem 工具,我得到如下值:

Command                         Swap      USS      PSS      RSS 
/usr/sbin/spamd --create-pr        0    16820    24974    41628
spamd chil                         0    19388    27581    44176
spamd chil                         0    32328    40038    55708

我了解交换栏,RSS 栏是通常报告的内容(例如以 ps 为单位)。通过阅读 smem 文档,听起来 USS 是专门为那个孩子使用的内存,而 PSS 是进程间共享的内存的一部分。但是,将 USS 添加到 PSS 会比 RSS 提供更高的值,我认为共享意味着更少(所以我可能解释不正确)。

我不依赖于 smem 工具。我只是想要某种方式来获得一个“内存使用”数字,该数字在某种程度上准确地反映了进程正在使用的实际内存量。

linux optimization memory
  • 2 2 个回答
  • 3837 Views

2 个回答

  • Voted
  1. Best Answer
    Mike Haboustak
    2009-05-06T07:06:33+08:002009-05-06T07:06:33+08:00

    比例集大小可能是您可用的每个进程内存使用的最佳数字。它是唯一的集合大小+(共享页面/共享进程数)。

    因此,一个进程使用了​​ 44176 个页面,其中 19388 个页面是该进程独有的。这意味着 24788 与其他人共享。

    将 PSS 视为 USS +(共享权重)。本例中的权重为 8193,即归属于该进程的共享内存页(24788)的比例。您共享页面的应用程序实例越多,每个进程的权重就越低。

    您可以跨多个进程对 PSS 求和,并且不会多次计算共享页面。但是,您不能将 USS 和 PSS 相加并期望 RSS,因为 PSS 已经包含 USS。

    • 3
  2. Alnitak
    2009-05-05T14:43:20+08:002009-05-05T14:43:20+08:00

    据我了解(但如果我错了,请有人纠正我),当进程分叉时,只有程序段被共享 - 数据段变得分开。

    因此,可执行文件(二进制)和加载的任何共享库将在进程之间共享。

    每个进程都将获得在 fork 之前分配的任何内存的自己的副本(*),但随后分配的任何内存对于该进程都是唯一的。

    (*) 一个非常聪明的 O/S 可以通过使用写时复制算法避免为子副本实际分配数据段,这样只有在任一进程尝试更改内存时才会分配内存。见这里。

    • 0

相关问题

  • 上线的第一天:如何不杀死您的网站

  • IIS 优化

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve