Linux:/proc/meminfo参数详细解释 一、Linux内存总览图 二、meminfo参数的详细介绍 /proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free...内存黑洞 追踪Linux系统的内存使用一直是个难题,很多人试着把能想到的各种内存消耗都加在一起,kernel text、kernel modules、buffer、cache、slab、page table...因为Linux kernel并没有滴水不漏地统计所有的内存分配,kernel动态分配的内存中就有一部分没有计入/proc/meminfo中。...在x86系统上Linux的内核栈大小是固定的8K或16K(可参阅我以前的文章:内核栈溢出)。...Anonymous pages(匿名页)的数量统计在/proc/meminfo的AnonPages中。
所以下文直接就找一台 Intel x86_64 架构下安装了 64bit Linux 系统的服务器作为例进行相关的实验和结果分析。...Linux 的内存管理从物理内存管理到虚拟内存管理涉及的概念和统计项实在太多,本文从实用和系统运维的角度出发,只列举一些最实用的统计。...因为基于文件系统所以就不能算是匿名页,不能计入AnonPages的统计项,而只能计入Cached和Mapped统计项。...所以从数值上看,Inactive(anon)项 + Active(anon)项 不等于AnonPages项,因为前者包括共享内存的部分。...这里有一个情况要注意,与文件关联的页也有可能是匿名页(MAP_PRIVATE 映射的页面被修改时会产生一个匿名页拷贝),会被算到AnonPages里。
64 架构体系内存分布 ---- 执行 cat /proc/meminfo 命令 , 可以查看 " x86_64 架构体系内存分布 " ; 执行结果参考 : root@ubuntu:~/kernel/linux...0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages...DirectMap4k: 159552 kB DirectMap2M: 2985984 kB DirectMap1G: 3145728 kB root@ubuntu:~/kernel/linux...SwapTotal: 0 kB 交换空间总内存大小 SwapFree: 0 kB 交换空间空闲的内存大小 Dirty: 0 kB 等待被写回到磁盘的内存大小 Writeback: 0 kB 正在被写的内存大小 AnonPages
Linux 内存的分类 Linux 内存的计算 Linux 进程的内存 Linux 应用内存分配 内存是计算机中与CPU进行沟通的桥梁,用于暂时存放CPU中的运算数据。...Linux 内核的内存管理机制设计得非常精妙,对于 Linux 内核的性能有很大影响。...16779884 kB SwapFree: 16777400 kB Dirty: 376 kB Writeback: 0 kB AnonPages...内存的计算 各类内存的计算公式如下: Shmem = 磁盘高速缓存(buffers/cached)- Filed-backed内存(file) = 匿名内存(anon)- AnonPages...Active(file) + Inactive(file) + Active(anon) + Inactive(anon) + Unevictable = buffers + cached + AnonPages
0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages...AnonPages 未映射页的内存大小。 Mapped 设备和文件等映射的大小。 Slab 内核数据结构slab的大小,可以减少申请和释放内存带来的消耗。...进一步探索,会发现 Linux 存在一个内存黑洞,在某博主博客找到如下描述: 追踪Linux系统的内存使用一直是个难题,很多人试着把能想到的各种内存消耗都加在一起,kernel text、kernel...CPU、内存、磁盘、使用率计算 正确计算linux系统内存使用率 /PROC/MEMINFO之谜 free命令的正确读取方式 通过/proc/meminfo实时获取系统内存使用情况 编程获取Linux...的内存占用和CPU使用率 Linux下系统内存使用率的计算方法 C语言监控linux系统 cpu 内存 IO 磁盘 网络信息 通过json发送到指定服务器 C语言的字符串数组 -------------
继续看kernel代码,linux-4.0.4/fs/proc/task_mmu.c: 可见,resident是file page和anonymous page的和。...注意,这里的类型只有MM_FILEPAGES,MM_ANONPAGES,MM_SWAPENTS三种。可见,这个resident的想要表达的就是当前进程在内存中的page的和。...但是在处理zero page的时候: uksm在合并zero page的时候,会减少进程的 MM_ANONPAGES计数,所以会看到上述实验现象的差异。
长时间运行的Linux服务器,通常 free 的内存越来越少,让人觉得 Linux 特别能“吃”内存,甚至有人专门做了个网站 LinuxAteMyRam.com解释这个现象。...虽然难免存在误差,但大体来说下面的关系式是成立的: 值得注意的是,AnonPages != Active(anon) + Inactive(anon)。...Shmem 虽然属于Active(anon) 或者 Inactive(anon),但是 Shmem 有对应的内存虚拟文件,所以它不属于 AnonPages。...mmap 的四种映射类型,和上面介绍的 /proc/meminfo 内存指标之间的关系: 私有映射都属于 AnonPages,共享映射都是 Page cache。...如果有进程写文件,因为这一段内存区域的属性是私有的,所以内核就会做一次写时复制,为写文件的进程单独地创建一份副本,这个副本就属于 AnonPages 了。
.tar.gz ☸ ➜ tar -xvf node_exporter-1.2.2.linux-amd64.tar.gz node_exporter-1.2.2.linux-amd64/ node_exporter...-1.2.2.linux-amd64/LICENSE node_exporter-1.2.2.linux-amd64/NOTICE node_exporter-1.2.2.linux-amd64/node_exporter...☸ ➜ cd node_exporter-1.2.2.linux-amd64 && ls -la total 18084 drwxr-xr-x 2 3434 3434 56 Aug 6...node_memory_AnonHugePages_bytes gauge node_memory_AnonHugePages_bytes 3.5651584e+07 # HELP node_memory_AnonPages_bytes...Memory information field AnonPages_bytes. # TYPE node_memory_AnonPages_bytes gauge node_memory_AnonPages_bytes
文章参考: 1、正确计算linux系统内存使用率 2、Linux系统内存消失与slab使用之谜 例如当前主机内存信息如下: 1 [zhang@test ~]$ cat /proc/meminfo...kB 17 SwapFree: 0 kB 18 Dirty: 6544 kB 19 Writeback: 0 kB 20 AnonPages...在linux内核中会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry。
1835000 kB SwapFree: 1835000 kB Dirty: 0 kB Writeback: 0 kB AnonPages... 1675256 kB SwapFree: 1649688 kB Dirty: 52 kB Writeback: 0 kB AnonPages
昨日推荐:每天学一个 Linux 命令(48):top 命令简介 free 命令用于显示内存的使用情况,显示可用和已用物理内存和交换内存的总数,以及内核使用的缓冲区。...total #内存总和 used #已经使用的内存 free #空闲的内存 shared #当前已经废弃不用 Buffer/cache #缓存内存数 available #实际可用内存数 Linux...如果应用程序需要内存空间时,Linux 会将缓存让出给程序使用,从而使内存达到最大化的利用率。...2097148 kB SwapFree: 2097148 kB Dirty: 0 kB Writeback: 0 kB AnonPages...命令(46):du 每天学一个 Linux 命令(47):df
在 Linux 下 free 命令可以看出系统当前内存状况,附上 -k , -m , -g 可以分别输出对应单位的内存状况: Usage: free [options] Options: -b,...gigabytes --tera show output in terabytes --peta show output in petabytes 以某台 Linux...这大致就是 Linux 下内存各项参数的含义,还有更复杂的参数,未来遇到新的场景时再做补充。...//空闲交换空间 Dirty: 76 kB //等待被写回到磁盘的大小 Writeback: 0 kB //正在被写回的大小 AnonPages...free -m 详细说明 #cat /proc/meminfo 详解 --------------------- Author: Frytea Title: Linux 内存参数详细说明 Link
) • Inactive = Inactive(anon) + Inactive(file) • Buffers + Cached = Active(file) + Inactive(file) • AnonPages...soVware.intel.com/en-us/ar0cles/op0mizing-applica0ons-for-numa https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
导读:今天,Linux 内核管理已经成为现代计算机领域中不可或缺的一部分。然而,由于问题复杂多样,解决起来也需要更加专业的知识和经验。...一、开发背景在管理 Linux 内核时,开发者常常面临着很多问题,比如定位 TCP 协议栈中导致数据包丢失的环节,这些问题可能需要专业的知识和经验才能解决。...无论你是 Linux 开发人员,还是系统管理员,oc-ops 都可以帮助你更高效地解决各种问题。...领域白名单为:Buffers/Cached、AnonPages、Shmem、Slab、Vmalloc、HugePages。...如果是 AnonPages 内存消耗增加,将各进程按消耗内存的大小进行排序输出。(用户态业务进程的内存泄露需由业务定位)如果是 Shmem 内存消耗增加,将自动扫描是否有哪个内存文件系统耗用内存过多。
思路概述:编写linux c代码,生成对应的动态链接库(so文件),通过LDPRELOAD实现对/proc文件系统访问的劫持。...999 kB SwapFree: 999 kB Dirty: 999 kB Writeback: 999 kB AnonPages
Tina Linux 内存优化开发指南 1 概述 1.1 编写目的 介绍Tina Linux 下减少系统使用内存的方法。 1.2 适用范围 硬件平台: 全志R/V/F/MR/H 系列芯片。...---- • total:Linux 内核可支配的内存。 • used:系统已使用的内存。 • free:系统尚未使用的内存。...16312 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages...• AnonPages:匿名页。 • Mapped:设备或文件映射的大小。比如共享内存、动态库、mmap 的文件等都统计在该内存中。...用户空间使用的内存= Buffers + Cached + AnonPages。
Linux中的一些常用文件 简介 这两天做资源自动化交付的项目,写的脚本比较多 ,在写脚本的过程中,遇到了很多Linux中的常用文件,这里列举一下,希望对大家能有所帮助吧。...在Linux系统中,系统调用是操作系统提供给应用程序使用操作系统服务的重要接口,但同时也正是通过系统调用机制,操作系统屏蔽了用户直接访问系统内核的可能性。...幸运的是Linux提供了LKM机制可以使我们在内核空间工作,在LKM机制中一个重要的组成部分就是proc伪文件系统,它为用户提供了动态操作Linux内核信息的接口,是除系统调用之外另一个重要的Linux...kB SwapTotal: kB SwapFree: kB Dirty: kB Writeback: kB AnonPages
7812092 kB SwapFree: 5889924 kB Dirty: 804 kB Writeback: 0 kB AnonPages...2、什么是cache 为了提高磁盘存取效率,Linux做了一些精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache...drop_caches To free pagecache, dentries and inodes: echo 3 > /proc/sys/vm/drop_caches 注意:在清空缓存前我们需要在linux
在Linux系统监控的工具中,free命令是最经常使用的命令之一。...SwapTotal: 1048568 kB SwapFree: 1045956 kB Dirty: 48 kB Writeback: 0 kB AnonPages...追踪Linux系统的内存使用一直是个难题,很多人试着把能想到的各种内存消耗都加在一起,kernel text、kernel modules、buffer、cache、slab、page table、process...因为Linux kernel并没有滴水不漏地统计所有的内存分配,kernel动态分配的内存中就有一部分没有计入/proc/meminfo中。
今天我们来学习几个小知识,不一定是Linux的命令,都是用于查看Linux的系统信息的 这也是我们的的最后一篇 下一节我们会介绍 查看Linux的CPU的信息 如何查看CPU的信息呢,我们可以这样 cat /proc/cpuinfo 这里我们可以找到我们的CPU的具体型号之类的详细信息 返回值是这样的...4128764 kB SwapFree: 4128764 kB Dirty: 20 kB Writeback: 0 kB AnonPages...Linux的发行版,旧版本的Linux可以这样 cat /etc/release 在CentOS7以及现在的大多数发行版以后,发行版信息不在上面那个了 CentOS7: cat /etc/redhat-release...篇:基础Linux命令>系列就完结了 下面我们会介绍更高级的内容
领取专属 10元无门槛券
手把手带您无忧上云