首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    死锁问题排查

    问题背景 最近有同事说平台的某个服务出现超时异常,让我帮忙看下原因。我进入平台后触发了该服务,并没有发现超时异常,那可能是在特定操作场景下会出现或者是一个非必现问题。...既然已知道异常服务,那可以从这里入手进行分析,又与同事沟通一番,确定了与该服务相关的一些后台模块,接下来重点排查这些模块。...下面是出现问题的参考日志,关键点已包含其中,因为原日志不方便展示。 排查方法 日志中出现了sync....问题本质 上面问题的根因是死锁导致的,死锁也是计算机中常见出现的问题。...往往改动代码引发的死锁问题比较容易出现,像本文中出现的问题就是代码改动导致的,添加功能需求的时候关注点集中在了业务逻辑上,容易忽视锁的问题

    1K10

    日常问题排查-调用超时日常问题排查-调用超时

    日常问题排查-调用超时 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。 Bug现场 这次的Bug是大家喜闻乐见的调用超时。...开始排查 那么这5秒钟时间到底消失在哪里呢?有3个可能的点: 1)A日志打点到真正发出请求包 2)网络上 3)B真正接收请求包到B日志打点。...可是这又引入了一个新的问题,为什么一次Full GC能达到6s之巨。 为什么这么慢 观察监控,笔者发现Full GC有时候快有时候慢。翻出对应6s的那条gc监控日志。...所以看上去是概率上出现GC慢的问题。 另一个机房没出问题 这时候巧的是,业务开发向笔者反映,另一个机房的相同应用确不会出现此问题。捞了下对应日志,发现其class unloading只有0.9s左右。...另外, 对于一个偶发性的问题,我们应该通过监控等手段去寻找规律,这样就很容易找到突破点。

    1.2K30

    线上问题排查总结

    线上问题排查总结 Cpu飙高可能的原因 CAS自旋 没有控制自旋次数;乐观锁 死循环----cpu飙高的问题;控制循环次数 云服务器redis被注入挖矿程序;端口像公网暴露;Redis端口不要被外网访问...} },"晓果冻").start(); } } 指定线程名称 创建新的线程的时候最好指定它的名称不然默认的都是Thread-0、Thread-1这样的,指定名称,在排查问题时也方便在直接在项目...中搜索是哪段代码出了问题。...Linux环境下排查cpu飙高的问题 先模拟一种死锁的情况,让cpu飙高 /** * @author 晓果冻 * @version 1.0 * @date 2021/6/23 7:45 */ public...进程号改变是因为我又重启了程序 通过打印出的信息可以在代码中搜索晓果冻线程名来查询到底是哪段代码出了问题

    27730

    线上问题排查思路

    若用户反馈线上服务请求无响应,可以按照以下步骤进行排查。 一、确认服务器内存使用情况 执行free命令,看看服务器内存是否正常。...7919 2106384 [B 7: 17131 1934896 java.lang.Class 如果这里看到有自己写的类对象,那可能就可以找到问题了...七、分析内存溢出问题 确定了是哪一个节点有问题,那么先把节点的流量切走。 如果第六步没分析出来是什么导致内存溢出,可以按如下步骤排查。 1....勾上了会保留不可达对象; 点击 file ---> open heap dump,选择刚才的dump文件,等待几分钟,mat工具会生成一个默认的报告; 默认报告里会列出problems,点击details就可以看到问题详情...,一般会列出有问题的对象; 选择有问题的对象,右键Merge Shortest Paths to GC Roots ---> exclude weak references; 然后再Java Basics

    25730

    Docker EOF问题排查

    一、前言 问题排查过程,源码部分均由我的开发同事排查和记录;在征得其同意后,由我发表在此。...二、问题 某天接到客户反馈,pod的事件中出现大量的 warning event: Readiness probe failed: OCI runtime exec failed: exec failed...三、环境 特别说明:客户在负责运行业务的k8s节点上坚持开启了cpu-manager 组件 版本 k8s 1.14.x 四、排查 1、接到客户反馈后,检查该pod所在节点的kubelet日志,如下...经过排查,发现 runc exec 在运行期间会读取 container 的 state.json,并使用 json decode 时出现异常。 ?...此时排查 runc EOF 和 kubelet cpu-manager update container(默认每 10s 更新一次) 的时间,发现时间点刚好吻合,验证猜想。

    4.9K10

    线上问题排查指南

    前言 最近经常有小伙伴问我,遇到了线上问题要如何快速排查。 这非常考验工作经验了。 有些问题你以前遇到,如果再遇到类似的问题,就能很快排查出导致问题的原因。...但如果某个问题你是第一次遇到,心中可能会有点无从下手的感觉。 这篇文章总结了,我之前遇到过的一些线上问题排查思路,希望对你会有所帮助。...那么,这种问题,我们该如何排查呢? 8.1 返回401 一般生产环境出现这个问题,是由于没有通过接口的登录认证。...还有一种可能也会导致请求接口报404的问题,接口地址之前注册到了API网关中,但API网关的配置出现了问题。 优先排查接口url是否修改,然后排查网关或者Nginx配置是否有问题。...我们只能查看接口的错误日志,来定位和排查问题。 建议出现异常时,把接口请求参数打印出来,方便后面复现问题。 导致这种问题的原因有很多,我们只能根据服务器上的错误日志,和相关的业务代码逐一排查

    13510

    docker hang问题排查

    2.重启kubelet变更宿主状态 kubelet重启后宿主状态从Ready变为NotReady,这个问题相较docker hang死而言,没有那么复杂,所以我们先排查这个问题。...以往针对docker 1.13.1版本的排查都发现了一些线索,但是并没有定位到根因,最终绝大多数也是通过重启docker解决。...因此单纯依赖协程调用链路定位问题这条路被堵死了。 截至目前,我们已经收集了部分关键信息,同时也将问题排查范围更进一步地缩小在containerd-shim与runc之间。...接下来我们换一种思路继续排查。 3.2 进程排查 当组件的运行状态无法继续获取时,我们转换一下思维,获取容器的运行状态,也即异常容器此时的进程状态。...后续 docker hang死的原因远非这一种,本次排查的结果也并非适用于所有场景。希望各位看官能够根据自己的现场排查问题

    1.4K50

    502问题怎么排查

    反过来,如果是服务器有问题,就返回5xx状态码。 4xx和5xx的区别 但问题就来了。 服务端都有问题了,搞严重点,服务器可能直接就崩溃了,那它还怎么给你返回状态码?...这种情况几乎都是程序有代码逻辑问题,崩溃一般也会留下代码堆栈,可以根据堆栈报错去排查问题,修复之后就好了。比如下面这张图是golang的报错堆栈信息,其他语言的也类似。...实例已经销毁但配置没删IP 要排查这种问题也不难。 这个时候,你可以看下nginx侧是否有打印相关的日志,看下转发的IP端口是否符合预期。...如果发现502,优先通过监控排查服务端应用是否发生过崩溃重启,如果是的话,再看下是否留下过崩溃堆栈日志,如果没有日志,看下是否可能是oom或者是其他原因导致进程主动退出。...如果进程也没崩溃过,去排查下nginx的日志,看下是否将请求打到了某个不知名IP端口上。 ---- 最后 最近原创更文的阅读量稳步下跌,思前想后,夜里辗转反侧。 我有个不成熟的请求。

    1.5K20

    Android 混淆问题排查

    问题 近期在开发过程中,突然出现混淆后程序出现运行时异常,编译是正常的,不混淆也是正常的, 错误信息如下提示 12-07 14:10:27.056 10603-10603/?...ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 思路 1、通过上面的错误信息首先会去排查...2、考虑到关闭混淆正常,开启混淆异常,那么就定位到时混淆的问题 3、既然是混淆问题那就查看混淆配置文件proguard-rules.pro,基本的配置都已经防混淆了 4、接下来的思路就是通过反编译来查看...BaseApplication到底出了啥额问题 过程 第一步 我们看到下面反编译的代码 ?...所以以后遇到混淆的问题就按照提示一步一步排查,一定要反编译文件来分析问题,不然无法定位原因。 还有第一次混淆后建议反编译查看一下包里面的代码,有没有需要混淆的核心代码被keep掉了。

    2.3K20
    领券