oprofile
This is a sampling profiler, so it has minimal impact on Traffic Servers performance.
Running the profiler and checking the status. Make sure the call depth is set to where you want it.
// start the deamon
bcall@snowball trafficserver$ sudo opcontrol --start-daemon
WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
Detected stale lock file. Removing.
Using default event: CPU_CLK_UNHALTED:100000:0:1:1
Using 2.6+ OProfile kernel interface.
Using log file /var/lib/oprofile/samples/oprofiled.log
Daemon started.
// check the status
bcall@snowball trafficserver$ sudo opcontrol --status
Daemon running: pid 29524
Separate options: library
vmlinux file: none
Image filter: none
Call-graph depth: 6
After making sure the daemon is running aand your settings are set to what you want. Start traffic server and start running the benchmark. I normally wait a few seconds for things to warm up before I start to profile the code.
// profile the code for 60 seconds
bcall@snowball trafficserver$ sudo opcontrol -s; sleep 60; sudo opcontrol -t
Profiler running.
Stopping profiling.
Google profiler
- Main Page: http://code.google.com/p/google-perftools/
- CPU Profiler: http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html
This too is a sampling profiler, so it has minimal impact on Traffic Servers performance.
Callgrind
Callgrind is will slow down the performance of traffic server significantly.