Exploring System Calls with Strace
I've been a fan and user of GNU/Linux since the 90s. In my professional career I've been a programmer, systems administrator, and DBA. I really enjoy digging in and solving performance problems using a variety of debugging tools and techniques. I enjoy programming in C, Perl, and Go. My heroes include Richard Stallman, Edward Snowden, and Lawrence Lessig.
No video of the event yet, sorry!
You can learn a lot about what programs are doing under the hood by examining the system calls that they make. In this talk I'll demonstrate how you can use the strace program in GNU/Linux to learn things about what programs are doing. What files are opened, read from and written to? What DNS and MySQL queries are being made? All of these questions can be answered using strace. I'll also show how you can use strace to output timing deltas to identify slow system calls that may be hurting your program's performance. I'll demonstrate how you can attach strace to a running apache or nginx worker process to debug a live website. I'll also spend a bit of time talking about GNU/Linux system calls themselves, and how strace displays the various C data structures (like sockaddr) that are used in interesting system calls like connect(2).
Some of this talk will be a bit of a rehash of my YouTube video on the subject, but this will be a longer, more in-depth dive into the world of GNU/Linux system calls and strace.
This talk is finished, but you can view the slides here.
- 2016 November 11 16:30
- 1 h
- Room 3179
- Seattle GNU/Linux Conference 2016