【案例68】录SPR日志卡死

devtools/2024/11/15 5:58:07/

问题现象

顾问在录取spr日志时,发现系统一直在前台处理性能数据,一直未弹出html页面。

问题分析 

首先排查服务器时间,发现服务器时间与标准时间差了3min。图为已经调整的。

再录制过程中显示时间已经变更为正确时间。

由于未显示具体操作人,通过客户端IP和指定服务访问的方式判断相关线程信息。

查看NMC发现时间基本卡在代码层面。

 线程堆栈

java">## 关键信息已打码
java.io.FileInputStream.readBytes(Native Method)
java.io.FileInputStream.read(FileInputStream.java:255)
java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
java.io.BufferedInputStream.read(BufferedInputStream.java:345)
sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:322)
sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:364)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:210)
java.io.InputStreamReader.read(InputStreamReader.java:205)
java.io.BufferedReader.fill(BufferedReader.java:165)
java.io.BufferedReader.readLine(BufferedReader.java:328)
java.io.LineNumberReader.readLine(LineNumberReader.java:210)
nc.bs.framework.mx.xxx.LogQuery.checkFileTsError(LogQuery.java:135)
nc.bs.framework.mx.xxx.LogQuery.getEffFile(LogQuery.java:109)
nc.bs.framework.mx.xxx.LogQuery.getEffFile(LogQuery.java:100)
nc.bs.framework.mx.xxx.LogQuery.getEffFile(LogQuery.java:100)
nc.bs.framework.mx.xxx.LogQuery.query(LogQuery.java:26)
nc.bs.framework.mx.monitor.MonitorServlet.queryLog(MonitorServlet.java:235)
nc.bs.framework.mx.monitor.MonitorServlet.doAction(MonitorServlet.java:78)
nc.bs.framework.server.InvokerServlet.doAction(InvokerServlet.java:185)
nc.bs.framework.server.InvokerServlet.doPost(InvokerServlet.java:72)
javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
nc.bs.framework.server.LoggerServletFilter.doFilter(LoggerServletFilter.java:35)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:87)
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1814)

发现大量时间在IO层面,排查了相关日志文件夹的大小,发现相关日志已经近90G。

需要紧急处理,否则录制SPR人过多会导致线程挂在后端,进而导致进程崩溃。

解决方案

停止NC服务后,删除nclogs文件夹。重启服务。


http://www.ppmy.cn/devtools/111357.html

相关文章

IP地址、地址分类、子网掩码、子网划分、使用Python计算子网划分

IP 地址(Internet Protocol Address)乃是用于明确标识网络中各类设备的独一无二的地址。IP 地址主要存在两种重要类型,即 IPv4 和 IPv6 。 IPv4地址 IPv4 地址实则是一个由 32 位二进制数字所构成的标识,通常会以四个十进制数字…

C++类型转换,特殊类设计,IO流

1.类型转换 什么是类型转换?我们知道有些数字类型可以相互转换,如double类型可以转换为int类型,这样的转换会发生切割将double类型的小数部分切割掉丢失精度;还有在前面的多态那块有一个虚函数指针表,这个虚函数指针表…

超分论文ESPCN解读

论文地址:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network 相关知识点总结: 许多SR技术的一个关键假设是,大部分高频数据是冗余的,因此可以从低频分量中准确重建…

数据结构--双链表

目录 一、引言 二 、链表的分类 1.单向或双向 2.带头或不带头 3.循环或不循环 三、双链表的概念与基本结构 1.概念 2.基本结构 三、双链表的常见操作 1.创建节点 2.初始化 3.头插 4.尾插 5.头删 6.尾删 7.打印 8.查找 9.插入节点 10.删除节点 11.销毁链…

flink的大状态复用

在 Apache Flink 中,实现大状态复用主要涉及在不同任务、不同生命周期阶段,甚至不同作业之间共享或重用状态数据。复用大状态可以减少重新加载和重新计算的开销,从而提升作业的效率和业务连续性。下面是几种在 Flink 中复用大状态的常见方法&…

什么是顶级的思维?主要体现在这5个方面

顶级思维并非单一的某种思维方式,而是多种卓越思维模式的集合,这些思维模式能够帮助人们在不同领域取得非凡成就,高效解决问题,并且实现个人和社会价值的最大化。 顶级思维主要体现在战略思维、创新思维、利他思维、系统思维、批…

对接外卖霸王餐API接口,需要注意哪些事项?

在对接外卖霸王餐API接口的过程中,需要注意以下事项以确保顺利实施和提供优质的用户体验: 1.明确业务需求: 确定你的平台需要哪些功能,如展示霸王餐选项、下单、支付、订单跟踪等。 2.选择合适的API服务提供商: 选…

如何看待IBM中国研发部裁员?

如何看待IBM中国研发部裁员?近日,IBM中国宣布撤出在华两大研发中心,引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展,也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…