Solving Problems and Identifying Bottlenecks with strace and truss
Doug Hughes, D. E. Shaw Research, LLC
Doug Hughes, D. E. Shaw Research, LLC
![](https://www.usenix.org/sites/default/files/styles/speaker_photo/public/hughes_doug_100x115.jpg?itok=7H85GiOP)
Doug Hughes graduated from Penn State University with a BE in Computer Engineering in 1991. He has worked for GE Aerospace at the network operations center, worked six years at Auburn University College of Engineering managing the infrastructure for the college of engineering, and spent six years at Global Crossing supporting the global IP infrastructure. Currently he works at D. E. Shaw Research, LLC where he leads a multi-national team of seven System Administrators covering all aspects of data, networking, and clustering infrastructure.
![](https://www.usenix.org/sites/all/modules/usenix/usenix_files/images/usenix-locked.png)
author = {Doug Hughes},
title = {Solving Problems and Identifying Bottlenecks with strace and truss},
year = {2014},
address = {Seattle, WA},
publisher = {USENIX Association},
month = nov
}
Strace and truss are powerful tools that are built-in to all modern Linux, BSD and Solaris based systems. These tools can be used as an aid to quickly identify problem areas. This has potential benefits for increasing efficiency and identifying performance problems. Understanding how these tools can be used from basic to advanced usage will give attendees the knowledge they need to improve their own and their business' efficiency.
People who should attend this tutorial are those wishing to enhance their diagnostic and troubleshooting skills, learn more about how system calls work, and discover the myriad benefits that come from exploiting programs like strace and truss. This will be a strace focused class, but almost all of the options are equally applicable to truss and differences will be pointed out between the two. People with Linux, BSD, Solaris, or Illumos distribution responsibilities will all benefit.
- What are system calls and how do they work?
- How does strace intercept system calls?
- What sorts of things can and can't you learn using strace?
- Techniques for rapidly identifying bottlenecks or areas for programmatic improvement
- Identifying why some programs are painfully slow
- Applying statistical analysis techniques for visualization and understanding
- Using an iterative approach for problem decomposition
- How to use strace with multi-process applications like Apache
- Introduction to system calls
- High level system call histograms
- Gathering information from running processes
- Various arguments for strace and when to apply them
- How to narrow in on problem areas
- Decoding system call arguments and data structures
- Using statistics to aid with problem diagnostics
- How to make inferences about areas where strace data is inconclusive
- Dealing with threaded and multi-process programs
connect with us