zoukankan      html  css  js  c++  java
  • oom和cpu负载的定位

    一、oom定位
    出现OOM 常见的原因:
    1、内存分配小 默认初始值无法承担过大的业务
    2、大对象没有及时释放 可以参考强链接及时置为null,
    3、网络不通频繁请求链接 服务端网络异常问题
    4、程序问题频繁创建线程 代码逻辑不严谨等

    2种排查方式:线上linux服务器排查、通过插件排查
    线上linux服务器排查:
    1、查发生了OOM的进程${pid}
    执行top -d 1 -c,每秒刷新一次,显示进程运行信息列表
    键入M (大写m),进程按照内存使用排序
    2、jmap -heap ${pid} 查看xmx xms等使用情况
    3、jmap -histo:live ${pid} | more 找到最耗内存对象
    4、ps -efL ${pid} 确认是否是资源耗尽 如果资源耗尽,也可能出现OOM

    通过插件排查:
    服务器启动加入参数
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/${path}/oom.hprof
    如果出现oom则对应目录生成oom.hprof文件
    然后在本地环境服务器:
    安装mat插件 或jconsole 插件等 把oom.hprof文件导入即可

    二、CPU 负载高定位
    ps -ef|grep tomcat 查tomcat pid
    通过top -Hp ${pid} 可以查看该进程下各个线程的cpu使用情况
    用jstack ${pid} 或 jstack -l ${pid} >jvm_listlocks.txt 导出线程的 dump日志

    群交流(262200309)
  • 相关阅读:
    java的map
    linux的date的几个例子
    URI记录
    eclipse进行关联代码
    hive的top n
    python类定义
    sql一些常用的经典语句,最后是select as的用法
    linux,shell脚本set -x的意思
    python循环for,range,xrange;while
    python安装json的方法;以及三种json库的区别
  • 原文地址:https://www.cnblogs.com/webster1/p/12890243.html
Copyright © 2011-2022 走看看