JVM FULL GC太频繁,CPU占用率过高问题
2017-09-11 23:22
686 查看
一,问题描述
今天上午时候,kafka的一个topic涌上来超过平常值的一堆数据,消费客户端就开始出现了几个明显的问题: 1,首先是ZK连接超时 2,CPU飙升到400% 3,观察程序GC,发现老年代,S0,Eden这三个,100%; 4,线程数目太多二,问题分析
在从kafka获取到数据之后,我使用了一个可回收线程池来进行存入hbase的操作,可回收线程池在使用时候,如果线程不够用,就会继续去创建线程,导致最后观察的时候,发现这个进程有2000多个线程在跑,线程之间的切换,是很耗费性能的,所以带来的CPU飙升,后来使用了固定大小的线程池,多开几个客户端取消费的方式,发现CPU降低下去了;随之下去的是GC情况,观察了几个钟头,始终没有发现FULL GC的情况。另外,在使用Kafka去拉取数据的时候,每次拉取完,使用Thread.sleep 0的方式,暂时让出CPU,不让这个获取数据的线程长期占用时间片;程序正常跑了之后,又回头想了想ZK连接超时的问题,感觉可能是FULL GC太频繁,每次都需要耗费很长的时间,导致了连接超时的问题;相关文章推荐
- oprofile定位CPU占用率过高的异常问题
- java-jvm-full gc频繁的分析及解决
- 关于win8系统开机后cpu占用率过高的问题
- thttpd服务器在时间修改后导致CPU占用率过高的问题
- java 应用 cpu 占用率过高问题
- 由于游标打开数过多导致的CPU占用率过高的问题
- mysqlCPU占用率过高的问题
- 系统频繁Full gc问题分析及解决办法
- 压力测试过程中MySQL服务CPU占用率过高的问题排查思路
- 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
- 一次线上JVM FullGC 问题的查找
- JceSecurity/BouncyCastleProvider导致JVM内存溢出、CPU过高问题排查
- [转] thttpd服务器在时间修改后导致CPU占用率过高的问题
- Cygwin1.dll版本不正确导致cpu占用率过高问题解决
- 怎样通过iisapp命令查找pid来解决IIS的cpu占用率过高问题
- 系统频繁Full gc问题分析及解决办法
- 一次频繁Full GC问题排查过程分享
- java应用CPU占用率过高问题的分析
- zprofiler三板斧解决cpu占用率过高问题(转载)