当前位置: 首页 > 面试题库 >

如果在PRODUCTION环境中调试死锁问题,有什么适当的行动计划来进行调试?

暴奕
2023-03-14
问题内容

注意,我并不是在问死锁的概念。如果您在生产集群服务器中的Java应用程序中遇到此问题以及调试技能,我会对您会怎么做感兴趣。

  • 有关分析步骤的计划的最佳实践。

假设条件

  • 您已经知道一台服务器受到此问题的影响。
  • OS正在使用Linux。

目标

  • 您想知道根本原因并加以解决。

问题答案:
  1. 向服务器发送SIGQUIT信号以强制进行堆栈转储。如果您使用的是Windows, 可以使用进行类似的转储jconsole也许吧 。但是,如果您在Linux上运行服务器,则生活会容易得多。
  2. 检查堆栈转储以找到死锁
  3. 知道它是什么,尝试在测试服务器上重现
  4. 如果可以重现,请修复它,然后在测试服务器上进行测试


 类似资料:
  • 有时您会遇到一种称为死锁的状况, 此时系统会停止进行有用的工作。 如果希望在此时提供有用的 bug 报告, 您应按照前述的方式使用 ddb(4)。 清在报告中给出与可疑进程有关的 ps 和 trace 输出。 如果可能的话, 请考虑对问题进行更深入的考察。 如果您怀疑死锁发生在 VFS 层上, 则下列选项会有助于找到问题。 您可以在内核编译配置文件中加入 makeoptions D

  • 我的代码在我的笔记本电脑上传递所有的UT/it,但在github CI中遇到错误,这让我非常困惑。您介意帮助使用一些方法在github CI中进行调试吗?或者使代码在本地运行与GitHub相同?

  • 问题内容: 据我所知,可以在一个单元内进行调试。 但是,我有多个单元格之间的函数调用。 例如, 我试过的 我试图在cell-1的第一行中设置。但是它甚至在执行单元2之前就立即进入调试模式。 我试图在代码之前添加该行。但是,代码永远运行,永不停止。 在ipython笔记本中设置断点的正确方法是什么? 问题答案: 使用 ipdb 通过安装 用法: 用于逐行执行和进入函数使用,并退出调试提示使用。 有关

  • 我正在编写一个应用程序,它有一个cron作业,每60秒执行一次。应用程序配置为在需要时扩展到多个实例。我只想每60秒在一个实例上执行一次任务(在任何节点上)。开箱即用,我找不到解决这个问题的方法,我很惊讶以前没有人问过多次。我使用的是Spring 4.1.6。

  • 问题内容: 因此,我开始学习使用Python和更高版本的Django进行编码。第一次很难查看回溯,实际上要弄清楚我做错了什么以及语法错误在哪里。现在已经过去了一段时间,并且我想我已经有了调试Django代码的例程。由于这是我编码经验的早期,所以我坐下来,想知道我的操作方式是否无效并且可以更快地完成。我通常设法找到并纠正代码中的错误,但是我想知道是否应该更快地执行该操作? 我通常只使用Django启

  • 开发 Service Worker 的过程中,我们如何让我们的开发更加高效并且准确的找出 bug 所在呢?我们在这一章专门讲一讲如何调试 Service Worker。 Service Worker 作为独立于主线程的独立线程,在调试方面有其实和常规的 JavaScript 开发类似,我们关注的点大概有如下几点: 代码是否有报错 Service Worker 能否顺利更新 在不同机型上的兼容性问题