zoukankan      html  css  js  c++  java
  • JVM问题定位

    一.Linux 系统下 cpu 使用率过高的分析方法
    1、通过 top 命令可以很明显查看出哪个进程耗cpu比较高
    2.使用 top -H -p <pid> 查看进程里面的线程占用情况
    3.将需要的线程ID转换为16进制格式
    4.sudo jstack 25147|grep 6268

    1. 查找进程

    top查看进程占用资源情况

    明显看出java的那个进程占用过高cpu.

    2.查找线程
    使用top -H -p <pid>查看线程占用情况

    3.查找java的堆栈信息
    将线程id转换成十六进制

    #printf %x 15664

    #3d30

    然后再使用jstack查询线程的堆栈信息

    语法:jstack <pid> | grep -a 线程id(十六进制)

    jstack <pid> | grep -a 3d30

    这样就找出了有问题的代码了。


    二参数配置
    ####设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。

    -Xmx20m -Xms5m 最大最小堆大小

    -Xmn、-XX:NewRatio、-XX:SurvivorRatio:
    -Xmn
        设置新生代大小

    -XX:NewRatio
        新生代(eden+2*s)和老年代(不包含永久区)的比值

        例如:4,表示新生代:老年代=1:4,即新生代占整个堆的1/5

    -XX:SurvivorRatio(幸存代)

  • 相关阅读:
    批量管理增量日志(seek、tell)
    字符串和编码
    5.activiti--完成任务
    4.activiti--代理任务Claiming the task
    3.activiti--待办任务
    2.activiti-启动流程实例
    1.activiti-流程图
    html 各种高度
    redis-过期时间、访问限制与缓存
    spring mvc controller 接收参数
  • 原文地址:https://www.cnblogs.com/wangyingshuo/p/14116828.html
Copyright © 2011-2022 走看看