003_java 触发full gc

线上zk集群由于数据量比较多,客户的数据量慢慢地增长,有一次突然达到gc上限,触发了full gc,这时zk处于不可用的状态,publisher进程退出,造成线上的故障

一、

(1)模拟及gc日志输出

jcmd查看运行的java进程,找到想要触发的java服务的full gc回收的pid  xxxx,然后执行jcmd xxxx GC.run即可,在执行过程中查看zk的数据,有片刻的卡顿(由于这个是单台的测试机,使用内存较小,所以没有看到比较明显的服务长时间down的情况).如下图:

 

 

参考:

https://confluence.atlassian.com/confkb/how-to-manually-force-a-full-garbage-collection-in-confluence-943978676.html

相关推荐:

如何确保对象属性批量更新后仅触发一次回调函数

本文介绍一种优雅的Python设计方案:通过禁用直接属性赋值+提供类型安全的update()方法,实现在多个属性变更后统一、且仅执行一次回调函数,兼顾IDE智能提示、代码可维护性与运行时可靠性。 本文介绍一种优雅的python设计方案:通过禁用直接属性赋值+提供类型安全的`update()`方法,实...

如何在不支持重触发的NI USB-6002设备上实现高密度外部触发AI采样

本文介绍一种绕过niusb-6002硬件限制的实用方案:通过双通道同步模拟采集(ai0+ai1)记录触发信号与目标信号,再结合离线边缘检测精准截取每触发对应的2–5个采样点,成功支持最小1ms间隔的非均匀外部触发采集。 本文介绍一种绕过niusb-6002硬件限制的实用方案:通过双通道同步模拟采集(...

如何在 PyQt6 中实现鼠标按键与字母/数字键的组合触发

本文介绍在PyQt6中检测鼠标按键(如左键)与普通键盘按键(如数字键'1')同时按下的方法,解决QMouseEvent不含key()方法的问题,通过状态标记+事件协同实现自定义组合操作。 本文介绍在pyqt6中检测鼠标按键(如左键)与普通键盘按键(如数字键'1')同时按下的方法,解决`qmousee...

如何在 Tkinter 中实现单次按键触发事件(避免重复触发)

Tkinter默认会在按键长按时持续触发事件,本文详解如何通过KeyPress/KeyRelease组合、状态标记或事件绑定控制,精准捕获每次物理按键的首次按下,并提供可复用的类封装方案与组合键(如Shift+1、1+±)处理技巧。 tkinter默认会在按键长按时持续触发``事件,本文详解如何通过...

如何在 Tkinter 中实现单次按键事件触发(避免重复触发)

Tkinter默认会在按键长按时持续触发事件,本文详解如何通过KeyPress/KeyRelease绑定、状态标记或事件去抖策略,精准捕获每次物理按键的首次按下,并附带组合键(如Shift+1、数字+±)的可靠检测方法。 tkinter默认会在按键长按时持续触发``事件,本文详解如何通过`keypr...