现象 排查思路 另一台服务器CPU正常,由于消息中心有部分老接口是域名调用的,网关已做负载均衡,并且pinpoint上的两台服务器gc如图,初步猜测是否是负载不均衡导致。 经运维调试nginx权重无效,证明与负载均衡无关。那么先看子线程,这种情况必定由某几个线程引起 ps -mp pid -o TH ...
分类:
其他好文 时间:
2019-09-25 15:32:31
阅读次数:
123
HBase中JVM基本配置 在JVM中,默认情况下会设置minimum heap size 为 1/64 可用物理内存,并为maximum heap size设置 1/4 的物理可用内存(不过在Java8 之前,默认最大是1g)。当然,我们可以通过手动指定 JVM 参数,配置JVM的内存,例如: 在 ...
分类:
其他好文 时间:
2019-09-23 18:04:56
阅读次数:
129
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。 ...
分类:
其他好文 时间:
2019-09-20 16:55:04
阅读次数:
291
1、问题发现 Prometheus报警live服务的某个节点Old GC过多,需要排查。 2、问题分析 查看Prometheus,发现这个节点在11点18 ...
分类:
其他好文 时间:
2019-09-18 14:24:35
阅读次数:
177
在 Java9 中,G1 GC 将成为默认的垃圾收集器,G1 垃圾收集器的关键特性之一是能够在不牺牲吞吐量的同时,限制 GC 暂停时间(即可以设置所需的最大停顿时间)。 由于 G1 GC 正在逐渐成为默认的垃圾收集器,它的使用与关注度也会逐渐增加。因此在调整 JVM 大小和排查问题的情况下,必须先理 ...
分类:
其他好文 时间:
2019-09-16 12:03:39
阅读次数:
108
这次的内存泄露问题是发生在多线程场景下的。 各种工具都试过了,gc,objgraph, pdb,pympler等,仍然没有找到问题所在。 pdb感觉用起来很方便,可以调试代码,对原来的代码无侵入性。 排查问题的过程中,多线程场景下,相关的工具,显得无力的。 使用objgraph时,代码执行很长时间后 ...
分类:
编程语言 时间:
2019-09-15 19:58:02
阅读次数:
192
参考资料:GC算法分类-https://zhuanlan.zhihu.com/p/41666328 《深入理解java虚拟机》第三章垃圾收集器与内存分配策略 一:GC分代--新生代跟老年代 gc活动空间为堆区域,堆按gc处理方式也可以分为新生代跟老年代。 对象内存分配跟使用的垃圾收集器有关,默认是在 ...
分类:
编程语言 时间:
2019-09-15 17:08:04
阅读次数:
110
并发6个用户,线程之前不等待,每隔3秒增加1个用户,间隔时间是2秒,然后并发数增加完成之后,运行60秒,运行完成后,每1秒钟停止2个用户 并发6个用户,线程之前不等待,每隔3秒增加1个用户,间隔时间是2秒,然后并发数增加完成之后,运行60秒,运行完成后,每1秒钟停止2个用户 ...
分类:
其他好文 时间:
2019-09-15 09:12:29
阅读次数:
161
Python中的GC算法 分为一下三点: 引用计数 标记 清除 分代回收 简述: Python中的GC模块主要运用了引用计数来追踪和回收垃圾.在引用计数的基础上,还可以通过"标记 清除"解决容器对象可能产生的循环引用的问题.通过分代回收以空间换取时间进一步提交垃圾回收的效率 标记 清除: 标记 清除 ...
分类:
编程语言 时间:
2019-09-14 22:10:16
阅读次数:
124
在G1出来之前,CMS绝对是OLTP系统的标配。即使G1出来几年了,生产环境很多的JVM实例还是采用ParNew+CMS的组合。但是即使其得到这么广泛的应用,还是有很多同学对它有很深的误解。本文主要对ParNew+CMS经典组合下,触发的几种垃圾回收方式进行几个概念的纠正。Backgroud可能更多人只知道CMS,而不知道BackgroudCMS。事实上我们说的CMS,即包含了5个阶段的CMS,就
分类:
其他好文 时间:
2019-09-12 15:02:57
阅读次数:
96