AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# :-: 关于Linux内存计算的说明 | 适用范围 | 适用版本 | 人员 | 发布时间 | 文档版本 |备注 | | --- | --- | --- | --- | --- |--- | | 服务器操作系统 | V10-SP1、V10-SP2 | 王国武 |2022.3.24| V1.0|发布| | 服务器操作系统 | V10-SP1、V10-SP2 | 张志勇 |2022.3.24| V1.1|模板调整| ***** ## 概述 这里主要说明Linux内存计算上关于free命令查询到的memory used值的构成,以及ps -aux 查询到的RSS内存的构成,以及其计算关系等问题。 ### 1.RSS内存的说明 ps -aux命令查询到的RSS内存是实际使用物理内存(包含共享库占用的内存),这里的共享库可能被多个程序使用,所以RSS统计出来的内存总量可能会比进程实际占用的内存总量偏大。 ### 2.memory used说明 通过free命令可以查询到当前系统上的内存信息,这些信息通过/proc/meminfo文件获取到,关于memory used的计算公式:Mem used = MemTotal - MemFree - Buffers - Cached - Slab。其中Buffers、Cached、Slab这三项是内存管理上的缓存和缓冲区。虽然被使用了,但是这三部分内存是可以被直接回收使用的。所以减去这三部分的内容是正确的;used内存包含了内核和进程使用的内存,有多个方面且复杂,比如”alloc_pages/__get_free_pages”部分内存就没有统计到meminfo文件当中。 ### 3.结论 Memory used是包含了RSS部分的,但是两者不可直接划等号,所以在计算used时,按照” Mem used = MemTotal - MemFree - Buffers - Cached - Slab”计算出的结果比对即可; ## 其他建议 在现场环境上查询相关信息时发现,有几台设备未进行激活程序包的升级,nklicadm-2.0-11.ns7.aarch64、license-client-libs-1.2-28.ns7.aarch64这两个是存在内存泄露问题,会导致内存缓慢增长。如果设备需要长时间不停机运行,建议升级这两个包。