Using ltrace to see what ipmctl and ndctl are doing
- How to , Linux , Performance , Troubleshooting
- June 23, 2021
Occasionally, it is necessary to debug commands that are slow. Or you may simply be interested in learning how the tools work. While there are many strategies, here are some simple methods that show code flow and timing information.
To show a high-level view of where the time is being spent within libipmctl, use:
# ltrace -c -o ltrace_library_count.out -l '*ipmctl*' ipmctl show -memoryresources
To show a high-level view of where the time is being spent within libndctl, use:
# ltrace -c -o ltrace_library_count.out -l '*ndctl*' ipmctl show -memoryresources
To show a high-level view of where the time is being spent within libipmctl and libipmctl, use:
# ltrace -c -o ltrace_library_count.out -l '*ipmctl*' -l '*ndctl*' ipmctl show -memoryresources
To trace all libipmctl and libndctl functions, use:
ltrace -l '*ndctl*' -l '*ipmctl*' ipmctl version
To include the time spent within each function, use:
ltrace -T -l '*ndctl*' -l '*ipmctl*' ipmctl version
Flame graphs can be very useful. See http://www.brendangregg.com/flamegraphs.html .