性能调优
qqchaozai
这个作者很懒,什么都没留下…
展开
-
【性能调优】JNI内存溢出案例(String对象溢出)
前言 场景:C++通过JNI将数据传输给Java程序 问题:运行一段时间String对象和Char字符不停变大,直到内存溢出(JVM-OOM) 1 过程 Jmap初步分析头部对象内存占用 PS:jmap -histo:live <pid>,执行该方法会同步执行一次GC,所以,展示的都是无法GC的对象。 发现:String对象有28万个,可能存在String对象被长期持有的...原创 2020-01-19 19:20:37 · 816 阅读 · 0 评论 -
【性能调优】CPU
在Linux中,CPU主要用于中断、内核以及用户进程的任务处理。 1 基础概念 上下文切换 每个CPU在同一时间只能执行一个线程(超线程除外),Linux采用的是抢占式调度,即CPU会给每个线程分配一定的CPU执行时间,当到达执行时间、线程中有IO阻塞或高优先级线程要执行时,Linux将切换执行的线程。 场景:文件IO、网络IO、锁等待或线程Sleep时,当前线程会进入阻塞或者休眠,从而触发...原创 2019-05-21 17:51:28 · 188 阅读 · 0 评论 -
【性能调优】CPU问题案例
案例一 1 现象 16核CPU,占了70%+ 2 排查 查看线程占用:定位到17836-17848这13个线程占用最高,平均占用%21 确定16进制进程号: 使用jstack导出发现无响应: 结果程序崩溃,日志中导出堆栈日志,发现这13个线程全部都是GC任务线程: 还发现:大量线程处于阻塞状态,且大量线程阻塞在jetty请求任务队列 java.lang.Th...原创 2019-08-01 15:15:05 · 335 阅读 · 0 评论