hmm, #freesoftwareadvent - I think I'd go for 'perf' for my first one; it's a good simple way to see where your CPU time is going inside a program or the kernel; it's got about a million options for deeper stuff, but a simple 'perf top' (as root) or 'perf record' followed by 'perf report' can give you a lot of hints, especially with the -g for stack traces.