美文网首页
应用部署实例消耗内存持续推高问题调查

应用部署实例消耗内存持续推高问题调查

作者: 哈密朵 | 来源:发表于2019-07-06 22:08 被阅读0次

【现象】
应用部署实例,通过top命令查看,cpu消耗在6%到13%,但RES常驻内存(不包括swap out)持续推高迅速达到1.9G,该docker容器的物理内存为2G,意味着应用实例消耗完物理内存。
VIRT虚拟内存达到23G,VIRT包括进程使用的库、代码、数据等,而且暂不知道VIRT是指的宿主机全体还是当前应用进程的量。
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT = swap + RES。
swap交换区(磁盘虚拟内存)约800m被持续的used,free持续减小到0后used清零,然后重复循环, 说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。但不知道used达到800m被清零时,jiayu进程有没有full gc。
通过jstate -gcutil查看应用进程共计4次full gc。
通过jmap -dump存活堆内存快照,堆内存活对象总计只有100m。

【原因】
应用进程,启动参数没有设置堆内存大小-Xms和-Xmx,Xms默认为64m,所以当64m翻倍再翻倍时,会触发full gc也就是看到的4次。但分配达到2G之后无法分配,但进程没有设置Xmx所以无法触发堆内存满多少时full gc的阈值。所以此时堆内存实际存活对象只有100m,其余1.8G都是可回收部分,也不会发起full gc去回收。

相关文章

  • 应用部署实例消耗内存持续推高问题调查

    【现象】应用部署实例,通过top命令查看,cpu消耗在6%到13%,但RES常驻内存(不包括swap out)持续...

  • Spring Session工作原理

    1、引入背景 应用部署在tomcat时,session是由tomcat内存维护,如果应用部署多个实例,sessio...

  • 神经网络内存消耗

    对于神经网络,在进行终端部署时,需要考虑内存消耗问题,大体来说: 内存=模型大小+特征图消耗 1、模型大小指的是模...

  • Tomcat多实例单应用部署方案

    一、Tomcat部署的场景分析 通常,我们对tomcat部署需求可以分为几种:单实例单应用,单实例多应用,多实例单...

  • 移动应用的性能

    内存 内存泄漏,会导致应用随时间进行而内存消耗不断增长。应用最后会因为内存不足异常崩溃。 电量 电量的消耗主要与计...

  • elasticsearch单机多实例伪集群部署

    tips:首先在es集群的生产环境中,一般不建议单机部署多实例,如果使用的是一台高配(高内存)物理机,内存≥512...

  • iOS 管理内存的方式 - 用户态接口层面

    内存消耗:内存消耗指的是RAM(随机存取存储器),应用中的内存消耗分为栈大小和堆大小。ROM(Read-Only ...

  • 应用内存优化

    概要 应用内存问题,大体可分为三种类型,内存泄漏、内存消耗过大、内存抖动等,内存异常会导致app卡顿、不流畅等,在...

  • 问卷系统私有化

    什么是云调查私有化部署? 云调查私有化部署,也叫云调查本地部署,是将成熟的云调查问卷调查系统的应用程序及数据库,整...

  • Forwarder管理服务器搭建步骤

    部署服务器系统要求 一、部署服务器计算机要求 由于应用下载期间的 CPU 使用率和内存使用率非常高,因此建议将部署...

网友评论

      本文标题:应用部署实例消耗内存持续推高问题调查

      本文链接:https://www.haomeiwen.com/subject/mdnmhctx.html