目录

cpu飙高处理步骤

内存飙高处理步骤

GC引起的单核飙高

常见SY飙高

IO飙高

抖动问题


cpu飙高处理步骤

1. top查找出哪个进程消耗的CPU高(top -c)

2. top -h -p查找出哪个线程消耗的cpu高(top -h -p pid)

这个命令就能显示刚刚找到的进程的所有线程的资源消耗情况。

3. printf%x进行pid的进制转换

找到CPU负载高的线程pid 8627, 把这个数字转换成16进制,21B3(10进制转16进制,用linux命令: printf %x 8627)

4. jstack记录进程的堆栈信息

执行jstack -l pid,拿到进程的线程dump文件。这个命令会打出这个进程的所有线程的运行堆栈。

5. 找出消耗CPU最高的线程信息

搜索“21B3”,就是搜一下16进制显示的线程id。搜到后,下面的堆栈就是这个线程打出来的。

内存飙高处理步骤

1. jstat命令查看FGC发生的次数和消耗的时间,次数越多,耗时越长说明存在问题;

Jstat命令可以观察到classloader,compiler,gc相关信息。可以时时监控资源和性能

2. 连续查看jmap -heap查看老生代的占用情况,变化越大说明程序存在问题;

Jmap命令(jmap [ option ] pid)得到运行java程序的内存分配的详细情况。例如实例个数,大小等

3. 使用连续的jmap -histo:live命令导出文件,比对加载对象的差异,差异部分一般是发生问题的地方。

GC引起的单核飙高

1. 单个CPU占用率高,首先从GC查起。

常见SY飙高

1.线程上下文切换频繁

2. 线程太多

3. 锁竞争激烈

IO飙高

1. 如果IO的CPU占用很高,排查涉及到IO的程序,比如把OIO改造成NIO。

抖动问题

原因:字节码转为机器码需要占用CPU时间片,大量的CPU在执行字节码时,导致CPU长期处于高位;

现象:“C2 CompilerThread1”守护进程,“C2 CompilerThread0”守护进程CPU占用率最高;

解决办法:保证编译线程的CPU占比。

CPU飙高和内存飙高的一般处理步骤相关推荐

  1. java事务占用内存吗,如何排查java应用中CPU使用率高或内存占用高的问题

    如何排查java应用中CPU使用率高或内存占用高的问题?这类问题的排查步骤基本通用的.现在通过一个具体的例子来说明. 问题描述 最近有个线上项目每天0点过后CPU使用率会上升至200%到300%. 排 ...

  2. mc服务器java占用过大_如何排查java应用中CPU使用率高或内存占用高的问题

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:MnameHZJ my.oschina.net/u/1420452/blog/224 ...

  3. java cpu高_Java中的CPU占用高和内存占用高的问题排查

    下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...

  4. Java吃CPU还是内存_Java中的CPU占用高和内存占用高的问题排查

    下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...

  5. 计算机内存占用过高,电脑内存占用高怎么办 Win7内存占用高解决办法

    Win7系统在正常使用的时候会占用很多资源,比如网络诊断,缓存还有其他各种平时大部分时候我们都用不上的资源,如果我们电脑本身内存比较小只有2G内存或者以下,打开程序稍微多加个就会造成Win7内存占用高 ...

  6. 阿里云Centos 解决挖矿程序:kdevtmpfsi--服务器CPU占用高、内存占用高

    前言 互联网存在很多的漏洞,如果我们使用不当,就会别被别人利用或者是盗取信息.之前在阿里云买的服务器,自己配置了nginx,mysql,redis等服务.由于在某些时候,本地程序开发中需要使用这些服务 ...

  7. 如何使用计算机备用内存,怎样解决emwin7/em备用存储空间占用高-win7 内存占用高,电脑物理内存占用90...

    右键属性我的电脑,然后点击[高级系统设置]. 系统属百性窗口选择[高级]菜单,并点击[性能]选项中的[设置]. 然后在度弹出的性能选项窗口中点击[更改]. 选择驱动器(一般专为C盘),选择[自定义属大 ...

  8. Linux内存管理:内存描述之高端内存

    <Linux内存管理:内存描述之内存节点node> <Linux内存管理:内存描述之内存区域zone> <Linux内存管理:内存描述之内存页面page> < ...

  9. 高并发编程-通过volatile重新认识CPU缓存 和 Java内存模型(JMM)

    文章目录 概述 volatile定义 CPU缓存 相关CPU术语 CPU缓存一致性协议MESI 带有高速缓存的CPU执行计算的流程 CPU 多级的缓存结构 Java 内存模型 (JMM) 线程通信的两 ...

最新文章

  1. combox qt 引起的删除失败_关于QT的QCombox的掉坑出坑
  2. UseCase事件描述叙事流规范
  3. 去除C++中string前面和后面的空白符
  4. 透过Win2008 R2窥视微软虚拟化帝国
  5. VTK:PolyData之PolyDataToUnstructuredGrid
  6. [java]ArrayList的介绍
  7. shell比较两个字符串是否相等
  8. C# 调用动态链接库读取二代身份证信息
  9. php stripslashes 去除反斜线
  10. CodeM资格赛 Round A 最长树链
  11. aix mysql日志,一次AIX 操作系统ASM添加磁盘的操作日志
  12. python全套完整教程-Python语言基础50课 全套完整版(含doc版)
  13. 下划线小写字母转大写
  14. 电信吉比特光纤猫虚拟服务器设置,光猫设置教程 华为光猫设置教程
  15. POI合并单元格后边框显示问题
  16. Windows系统 卸载 flash助手推荐弹窗
  17. oppo怎么修改dns服务器地址,OPPO R7/R7 Plus修改DNS图文教程
  18. Word怎么添加页码
  19. 关于反向传播算法中几个公式的推导
  20. windows批量删除指定后缀文件

热门文章

  1. 过年了,提前祝福园子里兄弟新年快乐
  2. ubuntu清理挖矿病毒
  3. Spring boot 2.0 zuul routes db网关
  4. python random randint_python中numpy.random.randint用法
  5. BES2300x笔记(15) -- 提示音制作秘籍
  6. 数据结构C语言版:魔术师发牌问题
  7. 刚入门软件测试行业的女生就能月薪过万骗局解秘
  8. 微信聊天小程序——(三、获取好友列表)
  9. android音频视频播放器
  10. ipython notebook_ipython notebook使用教程