zoukankan      html  css  js  c++  java
  • 性能问题定位——jvm

    问题描述:页面很卡,刷新不出来内容

    定位步骤:

    (排除前端卡顿)

    1.ssh登录服务器在top中看到tomcat进程占用cpu较高,获取该进程[pid]

    2.top -Hp [pid]查看具体哪几个线程占用cpu较高,记录其[tid],转换为十六进制

    3.将此[pid]的进程快照保存下来,jstack -l [pid] > /home/pid.xtac,打开pid.stack,搜索转换为十六进制的[tid],查询该线程的状态

    ===>发现该进程存在频繁gc,使用jstat -gcutil [pid] 1000 10查看[pid]的gc情况,每1000ms一次,输出10次

    ===>发现存在频繁full gc,使用jmap -heap [pid]查看内存空间分配

    ===>推测old区空间较少,可能是空间不足导致频繁ful gc

    4.获取堆转储文件,jmap -dump:live,format=b,file=filename.bin [pid],数秒后文件会保存在当前目录

    ===>将服务器上的堆转储文件下载到本地,mat打开进行分析

    其他:

    在发现频繁gc后考虑了三个地方:

    1.修改catalina.sh中jvm启动参数中内存空间大小

    2.通过dump发现代码是否存在问题代码

    3.添加配置文件,限制并发线程数===>经验证该方法简单可行

    确定线程挂起的位置:pstack [pid]

  • 相关阅读:
    BZOJ2768: [JLOI2010]冠军调查
    BZOJ1532: [POI2005]Kos-Dicing
    BZOJ1106: [POI2007]立方体大作战tet
    BZOJ1132: [POI2008]Tro
    BZOJ3143: [Hnoi2013]游走
    BZOJ1108: [POI2007]天然气管道Gaz
    BZOJ1131: [POI2008]Sta
    BZOJ1391: [Ceoi2008]order
    BZOJ1116: [POI2008]CLO
    解析HTML、JS与PHP之间的数据传输
  • 原文地址:https://www.cnblogs.com/jinziguang/p/13807429.html
Copyright © 2011-2022 走看看