Linux中系统和进程的内存用量统计

【Linux】如何统计出所有进程的物理内存使用量呢? WEL测试:这是什么?我想看看,看了会不会中毒呀?有点害怕 要避免重复计算多个进程同时占用的内存,像是页缓存、共享内存这类。如果把 ps、top 得到的数据直接相加,就会出现重复计算的问题。 这里,推荐从 /proc/< pid >/smaps 统计出所有进程的物理内存使用量。需要通过man proc了解/proc/< pid >smaps 文件中各个指标含义。 这里是把proc//smaps中的Pss相加,因为Pss是私有内存+共享内存按比例属于自己计算的那一部分,通过Pss不. 阅读详情

free命令的结果

使用busybox-1.31.0中的free命令(procps/free.c实现,主要从/proc/meminfo文件和sysinfo()系统调用中获得),命令执行结果中包含了 total、used、free、shared、buff/cache、available 几列。其中:

total = buff/cache + used + free
这里total来自/proc/meminfo里的MemTotal字段。cache来自/proc/meminfo里的Cached字段。available来自/proc/meminfo里的MemAvailable字段。
free的值来自sysinfo()得到的freeram;shared来自来自sysinfo()得到的sharedram;buff来自sysinfo()得到的bufferram。
需要注意的是,free命令先读/proc/meminfo文件,再读sysinfo()的结果,也就是说buff/cache和used的值并不是同一时刻的值做运算的结果,结果也会有误差。
shmem接口分配的共享内存,以及tmpfs文件系统的文件都被统计到了sharedram。

buff/cache = cache+bufferram
这其中包含了文件读写的页缓存和文件元数据,注意sharedram也被统计了一份到这里。也就是说shared和buff/cache中的统计有重复。
页缓存(读文件/写文件等动作产生的)是为了加快读写磁盘文件的速度,大部分是可以被回收利用的,tmpfs是不可回收的。

used = total - buff/cache - free
由上可知,实际已使用的内存比used要多,因为这个公式认为buff/cache都是可以回收的,但明显buff/cache里面包含了共享内存,这些共享内存可能已经被使用。
used可以用来估计共享内存以外,各进程通过malloc等产生的堆内存分配消耗。

available是通过free计算出来的 (mm/page_alloc.c的si_mem_available

Linux资源管理之cgroup回顾 概览 cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。 介绍 Cgroups是什么? cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说,cgroups 可以限制、记录任务组所使用的物 阅读详情

相关推荐

边缘智能新篇章:RK3588上YOLOv8姿态估计的轻量化部署与性能优化实战

本文详细介绍了在RK3588平台上部署和优化YOLOv8姿态估计模型的完整流程。通过模型转换、ONNX中间表示和性能优化策略,实现在边缘设备上的高效实时推理,为嵌入式AI应用提供可行的轻量化解决方案。

ik6789012的博客 151

从 YOLO 到视觉大模型:工程实践中如何选择?

本文对比了传统视觉模型YOLO与视觉大模型的差异。YOLO是单任务专用模型,适合规则明确、实时性要求高的检测任务;视觉大模型则具备通用视觉理解能力,但存在推理延迟大、算力成本高和"过度智能"等问题。在实际工程中,参数规模并非越大越好,7B-8B模型往往更均衡。控制大模型幻觉需通过严格Prompt设计、定向样本微调和任务拆解等方法。工业落地时应根据任务特性选择模型:YOLO适用于确定性高的场景,视觉大模型更适合复杂多变的环境。模型效果的关键在于任务边界、数据质量和系统设计,而非单纯追求参数

aiia18的博客 950

Deepracer 智能无人车-绿洲科学云平台介绍

Deepracer 智能无人车 绿洲科学云

woaixiyue19831的博客 1946

利用Python实现纬度加权平均(即NCL中的wgt_areaave)

当处理全球数据的时候,最常见的分析就是全球、北半球平均了,这时候一定要注意要根据纬度等信息进行加权,求加权平均,要不然结果肯定会不准。但是对于Python中,常规的计算包里面是没有的,或许现在有其他包可以实现,也可以告诉我~。

记录基于python语言处理气象问题的一些代码,包括不限于气象数据读取、机器学习和深度学习建模。 5745

无源元器件-电容选型参数总结

电容选型时,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对电阻电容磁珠电感的参数进行详细介绍并总结。

fydar的博客 835

Qt6导航组件系列专栏:30+常见导航场景的实现

本文介绍了Qt6导航组件系列专栏,涵盖30+常见导航场景的实现方案。专栏分为7组:基础侧边栏系列、社交与协作导航系列、文件与项目导航系列、工业与车载导航系列、创意与扩展导航系列、办公与效率导航系列、流程与引导导航系列。

u011186532的专栏 1133

UNet 改进(22):结合Transformer结构

保留了UNet的经典编码器-解码器结构在瓶颈层使用Transformer替代传统的卷积层采用跳跃连接保持空间细节信息使用双卷积块(DoubleConv)作为基础构建模块。

2401_82355416的博客 774

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: C++模板的使用例子(别看)
下一篇: 某些笔记——别看
去级得骨灰
博客等级 码龄18年 26粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值