[其它应用] 初识Linux内存

[复制链接]
5211|14
 楼主| flycamelaaa 发表于 2024-11-14 13:32 | 显示全部楼层 |阅读模式
当谈到 Linux 进程内存时,有几个重要的概念需要理解:VSS、RSS、PSS、USS。
  • 「虚拟耗用内存(VSS)」:VSS 表示进程虚拟地址空间的大小,即进程可以访问的所有虚拟内存区域的总和。这包括代码、数据、堆、栈等。在简单术语中,你可以把它看作进程拥有的所有内存空间的大小。
  • 「驻留集大小(RSS)」:RSS 表示进程当前实际使用的物理内存大小,即进程实际占用的物理内存量。这个指标更直接地反映了进程实际使用的内存量。
  • 「比例集大小(PSS)」:PSS 是一个计算值,表示进程实际使用的物理内存大小,但是按照共享内存的比例进行分摊。如果多个进程共享一块内存,那么这块内存的 PSS 值将被平均分摊到各个进程。
  • 「唯一集大小(USS)」:USS 表示进程独占的物理内存大小,即进程独自使用的物理内存量。这个指标可以帮助你了解进程独占的内存量。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
    int *ptr = malloc(100 * sizeof(int)); // 分配100个整型的内存空间
    if (ptr == NULL) {
        printf("内存分配失败\n");
        return 1;
    }

    for (int i = 0; i < 100; i++) {
        ptr = i; // 在分配的内存中存储数据
    }

    sleep(30); // 模拟程序运行一段时间

    free(ptr); // 释放内存

    return 0;
}
这个程序分配了100个整型的内存空间,存储了数据后等待30秒然后释放内存。
工具查看程序的内存使用情况:
  • 「top」:在终端中运行 top 命令,可以查看系统中运行的进程列表以及各个进程的内存使用情况。
  • 「ps」:使用 ps 命令可以列出进程的信息,包括进程的 VSS、RSS 等内存指标。
    ps -o pid,vsize,rss,cmd -p <进程ID>
  • 「pmap」:pmap 命令可以显示进程的内存映射表,包括各个内存区域的大小和权限。
    pmap -x <进程ID>
  • 「smem」:smem 命令可以按照 RSS 或 PSS 等指标对进程进行排序,并显示进程的内存使用情况。
    smem -p -c "pid vss rss pss uss name" | grep <进程名>


weifeng90 发表于 2024-11-14 17:22 来自手机 | 显示全部楼层
现在Linux内核越来越庞大了
szt1993 发表于 2024-11-20 10:40 | 显示全部楼层
linux系统是现在系统的首选
飘向北方 发表于 2024-11-21 15:40 | 显示全部楼层
Linux内存管理是系统性能的关键之一。了解Linux内存的基本概念和管理机制,有助于用户更好地管理和优化系统性能,提高系统的稳定性和响应速度。
Undshing 发表于 2024-11-24 16:15 | 显示全部楼层
weifeng90 发表于 2024-11-14 17:22
现在Linux内核越来越庞大了

嵌入式用不到最新的内核吧
szt1993 发表于 2024-11-24 22:31 | 显示全部楼层
Linux内存管理是系统性能的关键之一。
LOVEEVER 发表于 2024-11-25 23:38 | 显示全部楼层
USS 表示进程独占的物理内存大小,即进程独自使用的物理内存量。
中国龙芯CDX 发表于 2024-11-27 09:45 | 显示全部楼层
内存分配非常重要
小夏天的大西瓜 发表于 2024-11-27 23:50 | 显示全部楼层
虚拟耗用内存?具体做什么用的
小小蚂蚁举千斤 发表于 2024-11-29 21:34 | 显示全部楼层
VSS不是引脚嘛?
Henryko 发表于 2024-11-30 08:29 | 显示全部楼层
使用物理内存数量跟虚拟内存不一样吗?
我是一颗胖蘑菇 发表于 2025-7-9 09:27 | 显示全部楼层
确实,理解这些内存指标对于优化Linux系统和应用程序的性能至关重要。VSS、RSS、PSS和USS提供了不同的视角来观察进程的内存使用情况。
幻想收藏家 发表于 2025-7-9 13:47 | 显示全部楼层
非常详细地解释了Linux进程内存的几个关键概念,VSS、RSS、PSS和USS,这对于理解进程如何使用内存非常有帮助。
穷得掉渣大侠 发表于 2025-7-11 13:46 | 显示全部楼层
VSS、RSS、PSS和USS是理解Linux内存管理的关键概念。它们帮助我们了解进程如何使用系统资源。这个帖子提供了很好的基础知识。
北海道没有冬天 发表于 2025-7-30 15:43 | 显示全部楼层
Linux 内存管理分物理内存与虚拟内存,通过页表映射,具内存分页、置换、缓存机制,兼顾进程隔离与资源利用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

837

主题

4432

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部