TMM Core Files¶
Core files are typically produced to diagnose chronic issues such as memory leaks, high CPU usage, and intermittent networking issues. The Debug sidecar’s core-tmm utility creates a diagnostic core file of the Service Proxy Traffic Managment Microkernel (TMM) process. Once obtained, the core file can be provided to F5 support for further analysis.
This document describes how to create, and obtain a TMM core file in an OpenShift orchestration environment.
Ensure you have:
- A working OpenShift cluster.
- A Linux based workstation.
- Installed the Debug Sidecar
Generate the core file¶
Use the following steps to connect to the Service Proxy Pod’s debug container, and generate a core file using the core-tmm command.
Connect to the debug container:
oc exec -it deploy/f5-tmm -c debug -n <project> -- bash
In this example, the debug sidecar is in the spk-ingress Project:
oc exec -it deploy/f5-tmm -c debug -n spk-ingress -- bash
Generate the TMM core file:
Note: It may be helpful to note the time the core is being generated.
Floating point exception (core dumped)
Obtain the core file¶
Use these steps to launch an oc debug Pod, and Secure Copy (SCP) the TMM core file to a remote server.
Obtain the name of the worker node that the TMM Pod is running on:
oc get pods -n <project> -o wide | grep f5-tmm
In this example, the TMM Pod named f5-tmm-7cd5b85bdb-7c4b7 is in the spk-ingress Project, and is running on worker-2.ocp.f5.com:
kubectl get pods -n spk-ingress -o wide | grep f5-tmm NAME READY STATUS IP NODE f5-tmm-7cd5b85bdb-7c4b7 3/3 Running 10.244.2.107 worker-2.ocp.f5.com f5-tmm-7cd5b85bdb-b7rgb 3/3 Running 10.244.3.90 worker-1.ocp.f5.com
Launch the oc debug Pod:
Note: The oc debug command creates a new Pod, and opens a command shell.
oc debug node/<node name>
In this example, we create a copy of the worker-2.ocp.f5.com Pod:
oc debug node/worker-2.ocp.f5.com Creating debug namespace/openshift-debug-node-m7f8z ... Starting pod/worker-2ocpf5com-debug ... To use host binaries, run `chroot /host` Pod IP: 10.144.2.107 If you don't see a command prompt, try pressing enter.
To use the host binaries run:
List the core files written to the journal:
In this example, note the TIME the file was created and the PID (process ID):
TIME PID UID GID SIG COREFILE EXE Mon 2021-01-01 12:00:00 UTC 590091 0 0 8 truncated /usr/bin/tmm64.no_pgo
Change into the core file directory, and list the core file on the file system:
cd /var/lib/systemd/coredump; ls -1
In this example, the PID 590091 from the previous step identifies the bottom core file:
cd /var/lib/systemd/coredump; ls -1 'core.tmm\x2e0.0.951073d306bb4465a3d784e29da99995.1004628.1617028629000000.lz4' 'core.tmm\x2e0.0.951073d306bb4465a3d784e29da99995.2442391.1617019721000000.lz4' 'core.tmm\x2e0.0.951073d306bb4465a3d784e29da99995.590091.1617133773000000.lz4'
Secure Copy (SCP) the file to the remote server:
scp <tmm core> <username>@<ip address>:<directory>
In this example, the file is copied using the ocadmin user, to the remote server with IP address 10.244.4.10:
scp core.tmm\x2e0.0.951073d306bb4465a3d784e29da99995.590091.1617133773000000.lz4 \ firstname.lastname@example.org:/var/tmp/