技术文章

当前位置:首页>帮助手册>技术文章

o2server启用定时thread dump(stack trace)功能

时间:2022-06-09   

Java线程转储十分有助于分析应用程序的瓶颈和死锁情况。在对运行的应用程序进行监控或者问题追踪时,当从日志中无法发现明显的线索,Thread Dump是主要的方式。O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]服务器提供了启用定期进行thread dump(stack trace)的能力。本篇主要介绍如何开启O2OA开发平台的Thread Dump功能。


一、先决条件:

1、O2Server服务器正常运行,系统安装部署请参考文档《如何在服务器上安装部署O2OA》

2、以拥有管理员权限的用户账号登录O2OA(翱途)开发平台,如:xadmin

二、关于O2OA的Java Thread Dump

在对运行的应用程序进行监控或者问题追踪时,当从日志中无法发现明显的线索,Thread Dump是主要的方式。在设计中一般会在系统已经故障的情况下通过jstack等jcmd等工具运行thread dump,但是往往无法获取故障前的状态。在O2OA开发平台提供了定时自动执行Thread dump的功能,可以在较长时间内记录线程状态,以便于对比故障前后线程执行状态。

三、如何开启自动Thread dump

O2OA 可以通过配置项让服务器自动执行thread dump,在node_xxx.json配置文件中的stackTrace段落中进行配置。

{
  "stackTrace": {
    "enable": true,
    "interval": 20
  }
}

enable:是否启用此功能,默认为false。

interval:执行间隔默认为20秒执行一次。

每次执行将在服务器的logs目录下创建一个jstack_xxx_20220808101010.txt的文件,其中文件名的jstack是固定的,xxx为node的节点名,数字部分表示创建时的时间戳。

请注意:系统自动保留24小时内的县城转储文件,如果20秒执行一次,那么24小时将产生4320个转储文件。

四、如何执行线程分析

市面上可使用的工具比较多,我们推荐使用 IBM Thread and Monitor Dump Analyzer for Java (TMDA)进行线程分析,如下图所示:

analysis.png

分析的过程我们就不在此文中赘述。

logo_all@1.5x.png



以上是如何开启定期执行Java线程转储Thread dump(stack trace)的相关说明,希望对您有帮助。


上一篇:o2server人工处理节点底层流转机制详解

下一篇:o2server启用国密加密设置