CPU飙高和内存飙高的一般处理步骤
目录
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飙高和内存飙高的一般处理步骤相关推荐
- java事务占用内存吗,如何排查java应用中CPU使用率高或内存占用高的问题
如何排查java应用中CPU使用率高或内存占用高的问题?这类问题的排查步骤基本通用的.现在通过一个具体的例子来说明. 问题描述 最近有个线上项目每天0点过后CPU使用率会上升至200%到300%. 排 ...
- mc服务器java占用过大_如何排查java应用中CPU使用率高或内存占用高的问题
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:MnameHZJ my.oschina.net/u/1420452/blog/224 ...
- java cpu高_Java中的CPU占用高和内存占用高的问题排查
下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...
- Java吃CPU还是内存_Java中的CPU占用高和内存占用高的问题排查
下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...
- 计算机内存占用过高,电脑内存占用高怎么办 Win7内存占用高解决办法
Win7系统在正常使用的时候会占用很多资源,比如网络诊断,缓存还有其他各种平时大部分时候我们都用不上的资源,如果我们电脑本身内存比较小只有2G内存或者以下,打开程序稍微多加个就会造成Win7内存占用高 ...
- 阿里云Centos 解决挖矿程序:kdevtmpfsi--服务器CPU占用高、内存占用高
前言 互联网存在很多的漏洞,如果我们使用不当,就会别被别人利用或者是盗取信息.之前在阿里云买的服务器,自己配置了nginx,mysql,redis等服务.由于在某些时候,本地程序开发中需要使用这些服务 ...
- 如何使用计算机备用内存,怎样解决emwin7/em备用存储空间占用高-win7 内存占用高,电脑物理内存占用90...
右键属性我的电脑,然后点击[高级系统设置]. 系统属百性窗口选择[高级]菜单,并点击[性能]选项中的[设置]. 然后在度弹出的性能选项窗口中点击[更改]. 选择驱动器(一般专为C盘),选择[自定义属大 ...
- Linux内存管理:内存描述之高端内存
<Linux内存管理:内存描述之内存节点node> <Linux内存管理:内存描述之内存区域zone> <Linux内存管理:内存描述之内存页面page> < ...
- 高并发编程-通过volatile重新认识CPU缓存 和 Java内存模型(JMM)
文章目录 概述 volatile定义 CPU缓存 相关CPU术语 CPU缓存一致性协议MESI 带有高速缓存的CPU执行计算的流程 CPU 多级的缓存结构 Java 内存模型 (JMM) 线程通信的两 ...
最新文章
- combox qt 引起的删除失败_关于QT的QCombox的掉坑出坑
- UseCase事件描述叙事流规范
- 去除C++中string前面和后面的空白符
- 透过Win2008 R2窥视微软虚拟化帝国
- VTK:PolyData之PolyDataToUnstructuredGrid
- [java]ArrayList的介绍
- shell比较两个字符串是否相等
- C# 调用动态链接库读取二代身份证信息
- php stripslashes 去除反斜线
- CodeM资格赛 Round A 最长树链
- aix mysql日志,一次AIX 操作系统ASM添加磁盘的操作日志
- python全套完整教程-Python语言基础50课 全套完整版(含doc版)
- 下划线小写字母转大写
- 电信吉比特光纤猫虚拟服务器设置,光猫设置教程 华为光猫设置教程
- POI合并单元格后边框显示问题
- Windows系统 卸载 flash助手推荐弹窗
- oppo怎么修改dns服务器地址,OPPO R7/R7 Plus修改DNS图文教程
- Word怎么添加页码
- 关于反向传播算法中几个公式的推导
- windows批量删除指定后缀文件