首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

聊聊 Linux内存统计

点击上方“小强的进阶之路”,选择“星标”公众号 优质文章,及时送达 预计阅读时间: 18分钟 写在前面 本文主要分析 Linux 系统内存统计的一些指标以及进程角度内存使用监控的一些方法。...Linux内存管理从物理内存管理到虚拟内存管理涉及的概念和统计项实在太多,本文从实用和系统运维的角度出发,只列举一些最实用的统计。...、SHM_LOCK的共享内存页(也统计在Mlocked中)、和Ramfs等 Mlocked — mlock() 系统调用锁定的内存大小 共享内存Linux 中细分的话可以分为以下几种: SystemV...共享内存、可执行程序的文件、动态库、mmap的文件等都统计在这里 Shmem — 共享内存的大小,包括Shared Memory、tmpfs和devtmpfs 注意 Linux内存是真正使用时才分配的...) 之前说过,HugePages 是独立统计的,如果进程使用了 HugePages,是不会计入自身的RSS/PSS 的。

5.9K40
您找到你想要的搜索结果了吗?
是的
没有找到

Linux统计进程内存使用的神器

smem是一个工具,可以提供大量关于 Linux 系统内存使用情况的报告。与现有工具不同,smem 可以报告比例集大小 (PSS),它更有意义地表示虚拟内存系统中库和应用程序使用的内存量。...由于大部分物理内存通常在多个应用程序之间共享,因此称为常驻集大小 (RSS) 的内存使用标准度量将大大高估内存使用。...smem 显示总内存使用情况 甚至输出显示在 中MB,要使用 smem 获取总内存,请添加t选项。...x86_64-linux-gnu/girepository-1 6 0 0 /usr/lib/x86_64-linux-gnu/girepository-1...Smem 生成饼图 你现在可以使用 smem 以饼图的形式查看内存使用情况(USS、PSS 和 RSS) rumenz@local ~ $ smem --pie name -s uss image-

2K10

Linux 内核 内存管理】Linux 内核内存布局 ③ ( Linux 内核 动态分配内存 系统接口函数 | 统计输出 vmalloc 分配的内存 )

文章目录 一、Linux 内核 动态分配内存 系统接口函数 二、统计输出 vmalloc 分配的内存 一、Linux 内核 动态分配内存 系统接口函数 ---- Linux 内核 " 动态分配内存 "...是通过 " 系统接口 " 实现的 , 下面介绍几个重要的 接口函数 ; ① 以 " 页 " 为单位分配内存 : alloc_pages , __get_free_page ; ② 以 " 字节 " 为单位分配..." 虚拟地址连续的内存块 " : vmalloc ; ③ 以 " 字节 " 为单位分配 " 物理地址连续的内存块 " : kmalloc ; 注意 该 " 物理地址连续的内存块 " 是以 Slab 为中心的...; 二、统计输出 vmalloc 分配的内存 ---- 执行 grep vmalloc /proc/vmallocinfo 命令 , 可以统计输出 通过 vmalloc 函数分配的 " 虚拟地址连续的内存

5.1K30

RSS到WSS:深入Kubernetes内存指标

本文深入探讨了内存指标的复杂性,并揭示了 Kubernetes 和 Linux内存的截然不同的观点。 我的主要目标是为您提供更深入的理解和洞察,而不是提供实用的一刀切指导。 1....理解它们将为我们揭示 Kubernetes 和 Linux内存的不同视角带来一些有趣的收获,所以请继续关注。 4....高 RSS,接近内存限制:RSS 内存不容易被回收,使容器有很高的机会被 OOMKilled。...Linux 内核将其缓存,将 10GiB 添加到 'active' 内存。...正如我们所见,Kubernetes 和 Linux 对缓存内存有一些不同的观点。这些不同的观点可能会混淆我们对内存使用的理解。了解这些差异有助于理解真正的内存需求,并预见潜在问题,从而帮助预防挑战。

11810

Linux必知必会-理解内存使用统计命令free

本文详细介绍了Linux系统中的free命令的使用方法以及关键参数的含义,这可能是你见过的关于free命令最详细的一篇文章了,绝对值得你收藏。...free命令显示了Linux系统中物理内存、交换分区的使用统计信息。...,第一行为 物理内存使用统计: 标题 说明 total 物理内存总量 total = used + free used 已使用内存总量,包含应用使用量+buffer+cached free 空闲内存总量...free 空闲内存加上buffer和cached之后的内存,也就是真正的可用内存总量 第三行为交换分区使用统计 标题 说明 total 交换分区内存总量 used 正在使用的交换分区内存 free...Total的统计信息 -o 禁止显示第二行的缓冲区调整值 -s 每隔多少秒自动刷新结果 -c 与-s配合使用,控制刷新结果次数 -l 显示高低内存统计详情 -a 显示可用内存 -V 显示版本号 版本不同

85630

JAVA统计服务器资源(cpu,内存,磁盘)–LINUX

JAVA统计服务器资源(cpu,内存,磁盘)–LINUX 使用类: com.sun.management.OperatingSystemMXBean 继承:java.lang.management.OperatingSystemMXBean...自从: 1.5 修饰符和类型 方法 描述 long getCommittedVirtualMemorySize() 返回保证对正在运行的进程可用的虚拟内存量(以字节为单位,或者-1如果不支持此操作...long getFreePhysicalMemorySize() 返回以字节为单位的可用物理内存量。 long getFreeSwapSpaceSize() 返回以字节为单位的可用交换空间量。...ong getTotalPhysicalMemorySize() 返回以字节为单位的物理内存总量。 long getTotalSwapSpaceSize() 返回以字节为单位的交换空间总量。...= osmxb.getFreePhysicalMemorySize(); System.out.println("空闲物理内存:" + freePhysicalMemorySize /

14.7K20

检测 JVM 自身物理内存用量(RSS)的小技巧

然而实际上,由于 Flink 可以执行任意的 JAR 程序,用户可能有意或无意地引入了一些原生库(例如 RocksDB 等),它们的内存申请和释放并不在 JVM 管控范围内,最终造成物理内存RSS 或...这种方法下,堆内存用量获取的还算准确,但是堆外部分是非常不准的(严重偏小),难以用来预估实际内存用量。...经过充分讨论,也得到了另一条检测路径:Linux 会把进程的内存用量信息写入到 /proc/[PID]/status 虚拟文件中,我们可以读取这个文件来获取当前的物理内存用量。...os.equals("Linux")) { System.err.println("This program can only be run on Linux"); return invalidValuePlaceholder....findFirst() .orElse(invalidValuePlaceholder); } 当然,这只是一个非常简单的例子,不一定在所有环境下都可以运行(例如 Windows 等非 Linux

2.5K21

Linux - Linux内存管理

移除交换空间 ---- 概念 内存管理是Linux系统重要的组成部分。...为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...当需要用到原始内容时,这些信息会被重新从交换空间读入物理内存Linux内存管理采取的是分页存取机制。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。

52.1K41

Linux必知必会之内存使用统计命令free

free命令显示了Linux系统中物理内存、交换分区的使用统计信息。...,第一行为 物理内存使用统计: 标题 说明 total 物理内存总量 total = used + free used 已使用内存总量,包含应用使用量+buffer+cached free 空闲内存总量...free 空闲内存加上buffer和cached之后的内存,也就是真正的可用内存总量 第三行为交换分区使用统计 标题 说明 total 交换分区内存总量 used 正在使用的交换分区内存 free...Total的统计信息 -o 禁止显示第二行的缓冲区调整值 -s 每隔多少秒自动刷新结果 -c 与-s配合使用,控制刷新结果次数 -l 显示高低内存统计详情 -a 显示可用内存 -V 显示版本号 版本不同...参考示例 # free -t -a -g ---- ————广告时间———— 《马哥Linux云计算及架构师》网络课程,由知名Linux布道师马哥创立,经历了8年的发展,联合阿里巴巴、唯品会、大众点评

1.3K70

Linux内存描述之内存节点node--Linux内存管理(二)

CPU访问本地内存的速度比访问远程内存的速度要快 Linux适用于各种不同的体系结构, 而不同体系结构在内存管理方面的差别很大....因此linux内核需要用一种体系结构无关的方式来表示内存....因此linux内核把物理内存按照CPU节点划分为不同的node, 每个node作为某个cpu结点的本地内存, 而作为其他CPU节点的远程内存, 而UMA结构下, 则任务系统中只存在一个内存node, 这样对于...系统中的NUMA结点都是从0开始编号的 3.1 linux-2.4中的实现 pgdat_next指针域和pgdat_list内存结点链表 而对于NUMA结构的系统中, 在linux-2.4.x之前的内核中所有的节点...-3.x~4.x的实现 node_data内存节点数组 在新的linux3.x~linux4.x的内核中,内核移除了pg_data_t的pgdat_next之指针域, 同时也删除了pgdat_list链表

7.5K20

Linux内存描述之内存页面page--Linux内存管理(四)

1 Linux如何描述物理内存 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU被划分为多个节点(node), 内存则被分簇, 每个CPU对应一个本地物理内存, 即一个...内存中的每个节点都是由pg_data_t描述,而pg_data_t由struct pglist_data定义而来, 该数据结构定义在include/linux/mmzone.h, line 615, 每个结点关联到系统中的一个处理器...简单来说, 页是一个数据块, 可以存放在任何页框(内存中)或者磁盘(被交换至交换分区)中 我们今天就来详细讲解一下linux下物理页帧的描述 2 页帧 内核把物理页作为内存管理的基本单位....因此在后来linux-2.4.x的更新中, 删除了这个字段, 取而代之的是page->flags的最高ZONE_SHIFT位和NODE_SHIFT位, 存储了其所在zone和node在内存区域表zone_table...3.2 内存页标识pageflags 其中最后一个flag用于标识page的状态, 这些状态由枚举常量enum pageflags定义, 定义在include/linux/page-flags.h?

8K11

Linux内存描述之概述--Linux内存管理(一)

2 (N)UMA模型中linux内存的机构 Linux适用于各种不同的体系结构, 而不同体系结构在内存管理方面的差别很大. 因此linux内核需要用一种体系结构无关的方式来表示内存....Linux内核通过插入一些兼容层, 使得不同体系结构的差异很好的被隐藏起来, 内核对一致和非一致内存访问使用相同的数据结构 2.1 (N)UMA模型中linux内存的机构 非一致存储器访问(NUMA)模式下...而内存管理的其他地方则认为他们就是在处理一个(伪)NUMA系统. 2.2 Linux物理内存的组织形式 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU被划分为多个节点..., 我们会在后面典型架构(x86)上内存区域划分详细讲解x86_32上的内存区域划分 因此Linux内核对不同区域的内存需要采用不同的管理方式和映射方式, 为了解决这些制约条件,Linux使用了三种区:...2.6 高端内存 由于能够被Linux内核直接访问的ZONE_NORMAL区域的内存空间也是有限的,所以LINUX提出了高端内存(High memory)的概念,并且允许对高端内存的访问

6.8K30

Linux内存描述之内存区域zone--Linux内存管理(三)

Linux使用enum zone_type来标记内核所支持的所有内存区域 3.1 内存区域类型zone_type zone_type结构定义在include/linux/mmzone.h, 其基本信息如下所示...), 他们都通过typedef被重定义为zone_t类型 zone对象用于跟踪诸如页面使用情况的统计数, 空闲区域信息和锁信息 里面保存着内存使用状态信息,如page使用统计, 未使用的内存区域,...compact_blockskip_flush; #endif bool contiguous; ZONE_PADDING(_pad3_) /* Zone statistics 内存域的统计信息...用于标识最近的一次页面扫描中, LRU算法发现了很多脏的页面 ZONE_WRITEBACK 最近的回收扫描发现有很多页在写回 ZONE_FAIR_DEPLETED 公平区策略耗尽(没懂) 4.4 内存统计信息...vm_stat 内存域struct zone的vm_stat维护了大量有关该内存域的统计信息.

8.9K31
领券