TMM Core Files

Overview

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.

Requirements

Ensure you have:

  • A working OpenShift cluster.
  • A Linux based workstation.
  • Installed the Debug Sidecar

Procedures

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.

  1. 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
    
  2. Generate the TMM core file:

    _images/spk_info.png Note: It may be helpful to note the time the core is being generated.

    core-tmm
    
    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.

  1. 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
    
  2. Launch the oc debug Pod:

    _images/spk_info.png 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.
    
  3. To use the host binaries run:

    chroot /host 
    
  4. List the core files written to the journal:

    coredumpctl list
    

    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
    
  5. 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'
    
  6. 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 \
    ocadmin@10.244.4.10:/var/tmp/
    

Feedback

Provide feedback to improve this document by emailing spkdocs@f5.com.