RSS 是常驻内存集(Resident Set Size),表示该进程分配的内存大小。

RSS 不包括进入交换分区的内存。

RSS 包括共享库占用的内存(只要共享库在内存中)

RSS 包括所有分配的栈内存和堆内存。

VSZ 表示进程分配的虚拟内存。

VSZ 包括进程可以访问的所有内存,包括进入交换分区的内容,以及共享库占用的内存。

如果一个进程,程序的大小有 500K,链接的共享库大小有 2500K,堆栈内存共有 200K,其中 100K 进入了交换分区。

进程实际加载了共享库中的 1000K 的内容,以及自己程序的中的 400K 的内容。请问 RSS 和 VSZ 应是多少?

RSS: 400K + 1000K + 100K = 1500K
VSZ: 500K + 2500K + 200K = 3200K

RSS 中有一部分来自共享库,而共享库可能被许多进程使用,所以如果把所有进程的 RSS 加起来,可能比系统内存还要大。

有一个较新的参数 PSS (proportional set size),它对于共享内存的计算与 RSS 不同。参考前面的例子,如果有两个进程使用同一个共享库,那么:

PSS: 400K + (1000K/2) + 100K = 400K + 500K + 100K = 1000K

线程共享同一个地址空间,所以一个进程内部的所有线程有相同的 RSS, VSZ 和 PSS。可使用 ps 或者 top 命令观察这些信息。

具体解决方法如下

https://blog.csdn.net/philip502/article/details/112532672

测试同学反馈,java 程序内存泄露,症状是RSS不断增加超过了jvm的xmx相关推荐

  1. Go程序内存泄露问题快速定位

    前几天有同学反馈了 cgo 内存泄露问题,自己也针对这个问题探索了一番,算是为以后解决类似问题提前攒点经验吧.也趁机整理了一下 go 开发过程中内存泄露问题的一些常用排查方法,也希望对新接触 go 的 ...

  2. java 代码 内存泄露_如何用Java编写一段代码引发内存泄露

    Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有,好囧. A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中) ...

  3. java 解决内存泄露_Java内存泄露的理解与解决

    Java内存管理机制 在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期.从申请分配.到使用.再到最后的释放.这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记 ...

  4. java程序内存泄漏场景及预防

    为什么80%的码农都做不了架构师?>>>    虽然jvm有垃圾回收机制,如果程序编写不注意某些特定规则,仍然会导致java程序内存泄漏,最终可能出现OutOfMemory异常. 1 ...

  5. c++应用程序内存泄露检测

    前言:c++及c这种底层的编程语言,在获得更多程序控制自由度的同时,也承担了更多内存泄露的风险,有些同学想说,内存泄露只要看下c++的应用程序在运行时内存有没有一直增加不就行了吗,windows和li ...

  6. java 导致内存泄露的情况_JConsole定位内存泄漏

    在本文中,我们将看到Java中内存泄漏的示例代码.之后,我们将把Java应用程序连接到JConsole,比较有无内存泄漏时应用程序的内存使用情况.深入研究JConsole的内存监控工具可以让我们看到堆 ...

  7. java查看内存泄露_Java内存泄露如何排查

    Java内存泄露是常常出现的问题,Java攀登网进行了该问题的整理,具体的如下所示: 1.2 内存泄露Memory Leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内 存泄露危害可以忽略 ...

  8. Java程序内存分析

    2019独角兽企业重金招聘Python工程师标准>>> Java程序内存分析:使用mat工具分析内存占用 http://my.oschina.net/biezhi/blog/2862 ...

  9. 记一次 JAVA 的内存泄露分析

    记一次 JAVA 的内存泄露分析 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 当前环境 jdk == 1.8 httpasyn ...

最新文章

  1. 全面理解目标检测中的anchor
  2. 书Visual C++.NET应用教程(附光盘)——高等学校计算机语言应用教的评论
  3. 重定向和转发之间的区别
  4. Arthas-MathGame
  5. 企业如何从 0 到 1 构建整套全链路追踪体系
  6. 如何给python装库_python一键式装单机和RAC数据库
  7. string 与stringbuilder的区别
  8. 系统学习深度学习(二十七)--CTC
  9. 多个表结果的并列显示
  10. 孙鑫VC学习笔记:第十五讲 (一) 进程和线程基本概念
  11. 跟我一起数据挖掘(19)——什么是数据挖掘(2)
  12. 潜在语义分析(TF-IDF、LSA)
  13. 2020家用千兆路由器哪款好_千兆路由器哪个好 2020年值得入手的家用千兆路由器推荐...
  14. ESB 分布式处理技术 Remoting
  15. 三种call解释(一): cdcall stdcall naked call等在hook时,保持堆栈平衡
  16. 软件库App源码+后端源码
  17. 宏先生说:口罩和额温枪的套路!
  18. Saas与Paas、Laas服务模式了解
  19. win7下mysql重置root口令
  20. java面向对象小知识

热门文章

  1. Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现
  2. Java随笔记 - 断包和粘包 解决方法
  3. 条信息流oCPC调研报告
  4. 阿里云部署Java网站和微信开发调试心得技巧(下)
  5. Redis Redis主从架构(图灵学院)
  6. U盘装系统教程,一键安装和U盘安装的区别
  7. zotero+坚果云安装记录
  8. tomcat部署静态html网站方法
  9. CS229 --Lecture1 Introduction
  10. 文字转语音软件哪个好,这一款值得推荐