【案例57】记一次类加载导致系统卡死

news2024/9/23 16:09:59

问题现象

顾问反馈系统卡顿,系统无法使用。所有节点打开都在转圈。

问题分析

排查了nmc,发现在master上有很多堵塞线程,都在做锁相关线程。

查看相关的线程信息发现是在做类加载。Master撑不住,需要把锁独立出来。

线程信息-1

java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
java.io.File.exists(File.java:819)
sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1334)
sun.misc.URLClassPath.getResource(URLClassPath.java:249)
java.net.URLClassLoader$1.run(URLClassLoader.java:366)
java.net.URLClassLoader$1.run(URLClassLoader.java:363)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:362)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:686)
nc.bs.framework.comn.NetObjectInputStream$NCObjectInputStream.resolveClass(NetObjectInputStream.java:98)
... ...
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1975)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1567)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
nc.bs.framework.common.InvocationInfo.readExternal(InvocationInfo.java:207)
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2118)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2067)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
nc.bs.framework.comn.NetObjectInputStream.readObjectOverride(NetObjectInputStream.java:277)
... ...

线程信息-2

java.util.zip.ZipFile.getEntry(Native Method)
java.util.zip.ZipFile.getEntry(ZipFile.java:316)
java.util.jar.JarFile.getEntry(JarFile.java:240)
java.util.jar.JarFile.getJarEntry(JarFile.java:223)
sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1054)
sun.misc.URLClassPath.getResource(URLClassPath.java:249)
java.net.URLClassLoader$1.run(URLClassLoader.java:366)
java.net.URLClassLoader$1.run(URLClassLoader.java:363)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:362)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:686)
nc.bs.framework.comn.NetObjectInputStream$NCObjectInputStream.resolveClass(NetObjectInputStream.java:98)
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1868)
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
java.io.ObjectInputStream.readClass(ObjectInputStream.java:1716)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1556)
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1975)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1567)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
nc.bs.framework.common.InvocationInfo.readExternal(InvocationInfo.java:207)
... ...

Master请求是每秒1000多

解决方案

由于项目使用了Npart,通过Npart搭建了独立的PK锁服务器

后续问题

但是搭建完成后发现采购订单维护点击删除,发现报错如图。

排查相关数据库锁、PK锁都为空。

但是NMC中可以看到相关线程都存在PKlockServer的进程,说明已经创建了独立的PK锁。

排查相关线程发现有PK锁相关线程

导致的单据加锁。

删除单独的锁服务器,恢复master解锁后,单子可以删除。经过排查发现,在单独访问主机的server,直接做相关单子无异常现象。

单独访问从机上的服务做相同单据,显示被锁,nmc中也有相关线程出现。怀疑从机到主机PK锁服务网络不通导致PK锁服务未接收到相关请求的原因造成的。

查看服务防火墙发现端口未开放。开放相关PK锁服务的端口后,问题解决。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EmguCV学习笔记 VB.Net 6.1 边缘检测

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

Docker中镜像文件的打包传输、容器导出镜像及虚拟机端口映射的实现

内网私有仓库 1、Docker 私有仓库 是集中存放镜像的地⽅,⽽注册服务器 (Registry)是存放仓库的具体服务器。仓库可以被认为是⼀个具体 的项⽬或⽬录。 Docker 公共仓库:https://hub.docker.com 2、Docker 私有仓库的作⽤&#…

2、spring生态圈

咱们打开spring.io网站 可以看到spring的功能是很强大的,再看看它的生态圈

即用型封闭容器市场规模:未来几年年复合增长率CAGR为8.3%

一、市场趋势演变 即用型封闭容器行业近年来呈现出快速增长的趋势,这主要得益于其在制药、生物科技、食品加工等多个领域的广泛应用。随着全球对产品质量和安全性的要求不断提高,即用型封闭容器因其便捷性、高效性和可靠性而备受青睐。预计未来几年&…

PMBOK® 第六版 控制范围

目录 读后感—PMBOK第六版 目录 结果固然重要,过程同样不可或缺。过程不仅是通往预期成果的途径,也是个人和团队能力提升与经验积累的关键阶段。过程中的每一步都是学习和成长的机会,每一次尝试都能激发创新,而公正透明的流程更增…

《黑神话:悟空》的开发语言与开发团队揭秘

在国产游戏领域,《黑神话:悟空》无疑是一颗璀璨的新星,它以独特的视角重新诠释了中国古典名著《西游记》中的孙悟空形象,并以其惊人的视觉效果、深邃的游戏剧情以及精湛的技术实现,赢得了国内外玩家的广泛关注与期待。…

粘包现象 | wireshark抓包的使用

在TCP协议的通信过程中,由于其面向流的特性,数据在传输过程中可能会发生粘包现象,即多个发送的数据包被接收方一次性接收,导致应用层无法正确解析数据。 1.粘包现象概述 TCP协议为了保证传输效率,可能会将多次send调…

java 实体常用校验注解方法

1、常用注解: 注解说明Null只能为nullNotNull(message “id不能为空”)必须不为null,可以为空字符串Min(value)必须为一个不小于指定值的数字Max(value)必须为一个不大于指定值的数字NotBlank(message “姓名不能为空”)验证注解的元素值不为空&#…

vscode中Vue别名路径提示的实现

配置文件中配置别名: 在对应的jsconfig 或者 tsconfig文件中 配置: 文件中使用时候就会出现相应提示:

计算机毕业设计选题推荐-高校学术交流平台-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

从HTTP到HTTPS:SSL加密如何重塑互联网安全格局

从HTTP到HTTPS:SSL加密如何重塑互联网安全格局 随着互联网技术的飞速发展,网络安全问题日益凸显,保护用户数据的安全性和隐私性成为了不可忽视的重要议题。从HTTP(超文本传输协议)到HTTPS(超文本传输安全协…

webrtc ns 降噪之粉红噪声参数推导

webrtc中降噪中,前50帧需要进行简单噪声估计,使用白噪声和粉红噪声模型估算。 首先我们 复习 有色噪声(包含白噪声)的一般模型: S(f) 是频率 f 处的功率谱密度。f是频率。α 是一个频谱指数,通常在1左右。…

如何使用ssm实现海鲜自助餐厅系统+vue

TOC ssm068海鲜自助餐厅系统vue 绪论 1.1 选题背景 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需…

【C++ Primer Plus习题】3.3

问题: 解答: #include <iostream> using namespace std;const int DE_TO_MI 60; const int MI_TO_SE 60;int main() {int degree 0, minute 0, second 0;float degrees 0;cout << "请输入度:";cin >> degree;cout << "请输入分…

Selenium + Python 自动化测试23(综合实战)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上一篇我们讨论了PO模式和unittest框架、数据驱动结合起来使用。 本篇文章我们综合一下之前学习的内容,试着编写实际项目易用的测试用例脚本。 今天应该是此项目最后一次分享,大家快看,有完整的…

IntelliJ IDEA的maven配置

前言 在 IntelliJ IDEA 中&#xff0c;Maven 的默认配置文件是 settings.xml&#xff0c;它通常位于以下路径&#xff1a; 配置文件位置 全局配置文件&#xff1a; Windows: %USER_HOME%\.m2\settings.xmlmacOS/Linux: ~/.m2/settings.xml 这个文件是 Maven 的全局配置文件。…

闲鱼IP属地地址:去外地会自动变化吗?解析实时更新机制

在数字化时代&#xff0c;网络交易平台如闲鱼已成为我们日常生活中不可或缺的一部分。在进行二手交易时&#xff0c;了解对方的地理位置信息成为许多买家和卖家的关切点。那么&#xff0c;去外地闲鱼IP会变吗&#xff1f;闲鱼IP属地地址是实时更新吗&#xff1f;本文将深入探讨…

C#开发基础之I/O 异步和多线程异步:本质上的区别与使用场景

前言 在桌面软件开发中&#xff0c;异步编程是一种至关重要的技巧&#xff0c;尤其是在需要提高应用程序响应性和并发处理能力时。常见的异步编程模式主要包括 I/O 异步和多线程异步&#xff0c;这两者虽然都实现了非阻塞操作&#xff0c;但在本质上有着显著的区别。理解它们的…

USB分析仪USB3.2日志分析

1.简介 USB2.0总线采用轮询模式&#xff0c;即总线事务开始时&#xff0c;都要先发送IN或者OUT令牌包&#xff0c;以通知端点或者查询端点是否准备好。而USB3.2采用了异步通知模式&#xff0c;若端点没有准备好&#xff0c;则主机无需轮询&#xff0c;端点准备好后会通知主机&…

进程创建:fork函数

fork函数 在Linux系统中&#xff0c;fork函数是用于创建一个新的进程的函数。调用fork函数会创建一个新的进程。 fork函数的原型如下&#xff1a; #include <unistd.h>pid_t fork(void);fork函数没有参数&#xff0c;返回值是一个pid_t类型的值。在成功创建新的进程后…