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

linux内存使用情况分析(free + top)

文章转载自:https://www.cnblogs.com/pengdonglin137/p/3315124.html linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free...而系统实际可用内存是不是free部分呢,不是的,系统实际内存占用以及可用内存有如下几个加减法: used=total-free 即 total=used+free 实际内存占用:used-buffers-cached...: 128 used 已经使用内存数: 119 free 空闲的内存数: 8 shared 当前已经废弃不用,总是0 buffers Buffer Cache内存数: 1 cached Page Cache...为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page...知道了内存使用概括,如何查找内存占用较高的进程呢?可以使用top命令。

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

Linux 了解内存使用

Linux虚拟内存布局 32位Linux系统内存划分: 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。...注意:实际上,内核完全控制着内存使用情况,linux会在需要内存的时候,或在系统运行逐步推进时,将buffers和cached状态的内存变为free状态的内存,以供系统使用。...2.从应用层的角度来看系统内存使用状态 也就是linux上运行的应用程序可以使用内存大小,即free命令第三行“(-/+ buffers/cached)”的输出,可以看到,此系统已经使用内存才...Linux操作系统的内存运行原理,很大程度上是根据服务器的需求来设计的,例如系统的缓冲机制会把经常使用到的文件和数据缓存在cached中,linux总是在力求缓存更多的数据和信息,这样再次需要这些数据时可以直接从内存中取...3)、如何回收cached Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用

3.5K30

linux内存映射mmap原理分析

一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。...在内存映射的过程中,并没有实际的数据拷贝,文件没有被载入内存,只是逻辑上被放入了内存,具体到代码,就是建立并初始化了相关的数据结构(struct address_space),这个过程有系统调用mmap...图1.内存映射原理 既然建立内存映射没有进行实际的数据拷贝,那么进程又怎么能最终直接通过内存操作访问到硬盘上的文件呢?那就要看内存映射之后的几个相关的过程了。...这个过程与内存映射无关。 如果在拷贝数据时,发现物理内存不够用,则会通过虚拟内存机制(swap)将暂时不用的物理页面交换到硬盘上,如图1中过程4所示。这个过程也与内存映射无关。...图2.read系统调用原理 下面这个程序,通过read和mmap两种方法分别对硬盘上一个名为“mmap_test”的文件进行操作,文件中存有10000个整数,程序两次使用不同的方法将它们读出,加1,再写回硬盘

4.3K41

Linux进程内存分析pmap命令

名称:        pmap - report memory map of a process(查看进程的内存映像信息)pmap命令用于报告进程的内存映射关系,是Linux调试及运维一个很好的工具。...映像支持文件,[anon]为已分配内存 [stack]为程序堆栈         Offset:  offset into the file  文件偏移         Device:  device...writeable/private: 276K    shared: 0K [root@C44 ~]#   最后一行的值 mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小...,即ps出的vsz writeable/private  表示进程所占用的私有地址空间大小,也就是该进程实际使用内存大小       shared 表示进程和其他进程共享的内存大小 查看进程

3.6K10

MAT内存分析工具使用

摘要:Eclipse Memory Analysis Tools (MAT) 是一个分析 Java堆数据的专业工具,用它可以定位内存泄漏的原因。...第一个选项是内存泄漏报表(自动检查可能存在内存泄露的对象,通过报表展示存活的对象以及为什么他们没有被垃圾收集); 第二个是对象报表(对可疑对象进行分析,如字符串是否定义重了,空的collection、finalizer...Memory Analyzer主界面介绍 下面的Histogram(列出内存中的对象,对象的个数以及大小)这里我们可以使用正则去进行匹配 ?...要说一下的是,这种从图到树的转换确实方便了内存分析,但有时候会让人有些疑惑。本来对象B是对象A的一个成员,但因为B还被C引用,所以B在树中并不在A下面,而很可能是平级,如下图所示。 ?...所以GC Roots是分析对象为何还存活于内存中的利器。

1.7K60

linux服务器内存——分析

早上到单位 发现服务器 mysql 服务器停了 然后起来了 查询日志 显示 内存满了 把mysql服务给杀了 linux 服务器如果 内存满了 会自动清理进程 防止服务器挂掉 选择的话 谁占的的内存大...就先杀谁 我的服务器里面 mysql服务占的内存是最大的 所以就把mysql就给杀了 image.png 然后 重启mysql 查询内存 image.png 在这说一下 怎么看linux内存 举个例子...对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用...所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计,...,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常 swap用很多,可能你就要考虑加物理内存了.这也是linux内存是否够用的标准哦

23.8K10

Linux与JVM的内存关系分析

接下来主要就Linux与JVM之间的内存关系进行一些分析。...物理内存Linux活动时使用的主要内存区域;当物理内存不够使用时,Linux会把一部分暂时不用的内存数据放到磁盘上的SWAP中去,以便腾出更多的可用内存空间;而当需要使用位于SWAP的数据时,必须先将其换回到内存中...内核内存Linux自身使用内存空间,主要提供给程序调度、内存分配、连接硬件资源等程序逻辑使用。...现在分析这600m内存的分配情况: (1)Linux保留大约200m,这部分是Linux正常运行的需要, (2)Java服务的线程数量是160个,JVM默认的线程栈大小是1m,因此使用160m内存, (...四、总结 本文详细分析Linux与JVM的内存关系,比较了一般进程与JVM进程使用内存的异同点,理解这些特性将对Linux系统内存分配、JVM调优、Java程序优化有帮助。

4.5K80

Linux 内存使用过高排查

但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching...当发生内存不足、应用获取不到可用内存、OOM错 误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可 能只是把问题给暂时屏蔽了...而Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,等下次程序再次访问这些数据速度就快了,而如果程序要使用内存而系统中内存又不足时,这时不是使用交换分区,而是快速回收部分缓存...其实不然,Linux并没有吃掉你的内存,只要还未使用到交换分区,你的内存所剩无几时,你应该感到庆幸,因为Linux 缓存了大量的数据,也许下一次你就从中受益!...那么有人说过段时间,linux会自动释放掉所用的内存,我们使用free再来试试,看看是否有释放>?

9.1K30

MONGODB 内存使用分析与判断内存是否缺少

MONGODB 实例的内存使用率是一个非常重要的指标,内存使用率过高会导致MONGODB 实例的内存溢出,本文主要通过查看MONGODB的实例内存使用率得方法,使MONGODB的使用者尽快发现内存方面出现的问题...mongodb 默认设置内存的方式是 (实际的内存减 - 1GB)/ 2 ,mongodb在自己的数据引擎wiredTiger 中使用内存的情况下,同时还要使用linux 文件系统的内存。...virtual: 这个值是mongodb 使用的虚拟内存的大小, 这里包含了linux 系统中mongodb 程序使用的 SWAP (如果开启了 ),以及使用linux file system...主要的一个原因是,MONGODB 的数据是压缩应存储到磁盘上的,所以数据需要缓冲到LINUX 的系统缓冲CACHE 中,加速文件的解压和获取。...而系统并未回收到相关内存 我们通过db.serverStatus().tcmalloc 可以分析当前有多少内存作为CACHE 在tcmalloc 中存在,其中包括 pageheap_free_bytes

1.7K20

MONGODB 内存使用分析与判断内存是否缺少

MONGODB 实例的内存使用率是一个非常重要的指标,内存使用率过高会导致MONGODB 实例的内存溢出,本文主要通过查看MONGODB的实例内存使用率得方法,使MONGODB的使用者尽快发现内存方面出现的问题...mongodb 默认设置内存的方式是 (实际的内存减 - 1GB)/ 2 ,mongodb在自己的数据引擎wiredTiger 中使用内存的情况下,同时还要使用linux 文件系统的内存。...virtual: 这个值是mongodb 使用的虚拟内存的大小, 这里包含了linux 系统中mongodb 程序使用的 SWAP (如果开启了 ),以及使用linux file system...主要的一个原因是,MONGODB 的数据是压缩应存储到磁盘上的,所以数据需要缓冲到LINUX 的系统缓冲CACHE 中,加速文件的解压和获取。...而系统并未回收到相关内存 我们通过db.serverStatus().tcmalloc 可以分析当前有多少内存作为CACHE 在tcmalloc 中存在,其中包括 pageheap_free_bytes

1.5K30

如何查看linux系统中空闲内存物理内存使用剩余内存

查看linux系统中空闲内存/物理内存使用/剩余内存 查看系统内存有很多方法,但主要的是用top命令和free 命令 当执行top命令看到结果,要怎么看呢?...1346MB内存,还有6636MB空闲内存可以使用. ...= 总物理内存 - 实际已用内存  应用程序已用内存 = 实际已用内存 - 缓冲 - 缓存 top命令的结果详解 top命令 是Linux下常用的性能 分析工具 ,能够实时显示系统 中各个进程的资源占用状况...时间总计,单位秒   m  TIME+  进程使用的CPU时间总计,单位1/100秒   n  %MEM  进程使用的物理内存 百分比   o  VIRT  进程使用的虚拟内存总量,单位kb。...测量一个进程占用了多少内存linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。

19.7K41

如何使用Eclipse内存分析工具定位内存泄露

本文以我司生产环境Java应用内存泄露为案例进行分析,讲解如何使用Eclipse的MAT分析定位问题 一....-XX:+HeapDumpOnOutOfMemoryError 参数,该配置会把dump文件的快照保存下来供后续分析排查问题,也可以使用jmap或jcmd等jvm命令进行dump: jmap -dump...分析内存泄露 内存泄露和内存溢出的区别:内存泄露从老年代的增长情况看是缓慢上升的, 最终达到老年代上限才会导致溢出,有些内存泄露可能需要很长的时间发生, 所以说内存泄露更隐蔽, 不像内存溢出那样容易暴露...比如我们要分析这3个dump文件(当然你也可以分析更多个, 这样会更精准), 打开后, 使用compare basket功能找出内存泄露的差异点: 1....使用 compare basket 功能分析内存泄露 1> 菜单栏 window → compare basket ,打开比较窗口(如果最下面一栏已经有compare basket则这步不需要),如下图

1.9K10

使用procrank分析内存利用及分析源代码

前言: procrank是一个统计内存使用的神器,包括VSS,PSS,PSS和USS的详细参数。作为一个内存使用分析工具,简直厉害的不要不要的。...作者尝试过几个Linux发行版,都没有把procrank作为可以安装的包。这也不奇怪,作者接触这个命令的时候,也是在Android中使用到的。...关于maps,后面会在使用maps解决进程crash的时候详细说明。 ? 5,进入正题,开始分析procrank。...a,既然要分析所有的进程的内存使用情况,那么就需要遍历/proc目录下所有的数字目录,数字就是系统的所有的进程的pid(top,ps等命令,都如此)。...例如/lib/x86_64-linux-gnu/libc-2.23.so的某一个页面被60个进程使用过,那么自己还是要算上4K。 PSS:页面被多个进程映射过,那么把使用量平均到大家头上。

3.8K70
领券