码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Eclipse-MAT 案例:Tomcat堆溢出分析


    学习 尚硅谷 宋红康 JVM从入门到精通 的学习笔记

    说明

    tomcat是最常用的Java Servlet 容器之一,同时也可以单独做为web服务器使用,tomcat本身是用Java语言实现的,并且运行在Java虚拟机之上,在大规模请求时,tomcat有可能会因为无法承受压力而发生内存溢出错误.
    这里根据一个被压垮的tomcat堆快照文件,来分析tomcat在奔溃时候的内部情况.

    导入hprof文件

    image.png

    堆大小有29.7MB, 类一共有3.2K个,对象个数有833.8K个,类加载器有33个
    org.apache.catalina.session.StandardManager@0x6d2cfa8 这对象占用了16.4MB空间,0x6d2cfa8 的对象这个就是我们所谓的最大的对象
    分析oom内存溢出的话,首先就是要分析占用最大对象,

    image.png

    鼠标左键查看这个最大的对象引用了哪些结构

    image.png

    发现 StandardManager里面有个sessions占用了17mb大概,占用很大

    image.png

    image.png

    发现有那么多StandardSession,怀疑是tomcat短期之内收到了大量的Session导致的

    image.png

    image.png

    随便选一个session对象,查看左边的信息,上面是创建时间,下面是结束的时间,这两个时间做一个差值,就相当于这个session对象在内存中出现的时间了.
    这两个时间就相差了一毫秒.通过这两个时间就能获取到相关的信息了.

    image.png 写 语句,查看StandardSession,发现第一个StandardSession的创建时间和最后一个StandardSession的创建时间的差值,右边的减去左边的,再 *1000 , 然后再被9941个session对象除掉, 结果发现一秒得到311个对象,
    由此推断,tomcat发生堆溢出时,tomcat在连续的30秒内,平均每秒接收了大概311次不同的客户端请求,导致创建了9941个session,结果导致tomcat发生了堆溢出了.

  • 相关阅读:
    HCIP-R&S By Wakin自用笔记(2)OSPF之OSPF回顾、虚连接
    二十九、【进阶】MySQL索引的概述和索引查询
    FPGA实战2-数码管实验verilog
    文章一直被拒,没有送审,也没给出拒稿原因和建议原因不过这几点
    【Mac M2 pro】Linux虚拟机轻装上阵—multipass 尝试
    【Spring】Spring的创建和使用手术刀剖析
    从设计模式理解Spring原理之注册器模式
    spring boot 自定义 starter
    使用Matlab生成可供TMS320C6748开发板使用的算法
    字节码文件(.class文件)
  • 原文地址:https://blog.csdn.net/qq_41489540/article/details/126334382
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号