- 博客(4)
- 资源 (1)
- 收藏
- 关注
转载 groovy脚本导致的FullGC问题
这个是由一个线上问题导致的:背景:应用中内嵌了groovy引擎,会动态执行传入的表达式并返回执行结果线上问题:发现机器的fullGC从某个时候开始暴涨,并且一直持续;登到机器上,用jstat -gcutil命令观察,发现perm区一直是100%,fullGC无法回收;将这台机器的内存dump出来进行分析;在类视图中,发现大量的groovy.lang.GroovyClassLoade...
2019-01-31 19:12:01 694
转载 Groovy深入探索——Groovy的ClassLoader体系
Groovy中定义了不少ClassLoader,本文将介绍其中绝大多数Groovy脚本都会涉及到的,也是最主要的3个ClassLoader:RootLoader、GroovyClassLoader和GroovyClassLoader.InnerLoader。注:以下分析的Groovy源代码来自Groovy 2.1.3。Java的ClassLoader顾名思义,Java的ClassLoader...
2019-01-31 19:03:18 5781
原创 记一次生产多线程调优
一、问题在某次促销活动之前,突然收到生产环境的报警,有个后台应用出现了大量的YGC,赶紧查看系统监控日志,没有什么异常,那是什么原因呢?二、问题排查1.登录跳板机,通过top命令查看,有个java的进程CPU占用率过高,ps -ef |grep java发现是应用的进程。2.通过top -Hp pid可以找出该进程内最耗费CPU的线程。3.执行printf “%x\n” 线程ID,将线...
2019-01-30 20:13:38 146
原创 java线程池
一、什么是线程池?线程池是用于创建和管理线程的容器,可以提高系统的资源利用率。线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。JDK1.5之后java.util.concurrent包下新增了一个工厂类Executors用于线程池的创建。二、线程池创建java在在Executors类里...
2019-01-30 19:52:52 285
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人