Heap and Threaddump deprecated
Generating heap and thread dumps for the OX App Suite Middleware.
This document describes how to create a heap and threaddump from a java OX App Suite Middleware service running inside the Kubernetes cluster.
Prerequisites
- An active shell to a running Toolkit Container within the cluster. See Starting.
Commands
To create a heap and thread dump from a running OX App Suite Middleware process, use the mwctl debug
tool with its heapdump
and threaddump
subcommands.
When entering a command, you can use the Tab key to autocomplete the pod name for convenience and accuracy.
Heap dump
Create a Heap Dump
Creating a heap dump on the target system:
mwctl debug heapdump <POD>
By default, the heap dump is written and compressed to the /tmp directory on the Middleware container's file system. For example.: /tmp/heapdump_1720008357.hprof.tar.gz.
Download a Heap Dump
You can also use the --download
flag if you prefer to transfer the heap dump to the Toolkit Container for further processing.
mwctl debug heapdump --download <POD>
This will download the created heap dump to the Toolkit Container and place it into your current working directory.
To transfer the heap dump to your local computer, you can use a standard kubectl cp
command. For example:
kubectl cp -n <NAMESPACE> <POD>:<FILENAME> --retries 20
Heap Dump Options
By default, mwctl heapdump
creates a full memory dump containing the complete heap of the process (analogous to jmap
’s -dump:all
option). Alternatively, you can generate a dump of only live objects by specifying the --dumptype live
option, which triggers a garbage collection before the heap dump is taken.
mwctl debug heapdump --dumptype live <POD>
Further information
Refer to "debug heapdump" for a detailed explanation and a list of all available options.
Thread dump
Create a Thread Dump
To create a thread dump from a running OX App Suite Middleware process, use the mwctl
tool with its debug
and heapdump
subcommands.
mwctl debug threaddump -s <POD>
This command creates a single (-s
) thread dump from the OX App Suite Middleware process on the specified pod and prints it to your terminal.
Create a comprehensive Thread Dump
Instead of generating a single thread dump, the command can also create more comprehensive dumps, including multiple single dumps and top(1) outputs.
mwctl debug threaddump <POD>
This command will create five separate thread dumps and a top(1) output, each saved in a separate file that will be downloaded into current working directory of the Toolkit Container afterward. For example.: ./threaddumps_1720011630/
To transfer a thread dump file to your local computer, you can use a standard kubectl cp
command. For example:
kubectl cp -n <NAMESPACE> <POD>:<FILENAME> --retries 20
Further information
Refer to "debug threaddump" for a detailed explanation and a list of all available options.