You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

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.

Running a basic report will tell you what functions are showing up in the sampled profile the most.

bcall@snowball trafficserver$ opreport --symbols proxy/traffic_server | head
CPU: Core 2, speed 2003 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples % image name app name symbol name
39820 18.0383 traffic_server traffic_server _fini
5080 2.3012 libc-2.11.1.so traffic_server memcpy
4235 1.9184 traffic_server traffic_server ink_freelist_new
3280 1.4858 libpthread-2.11.1.so traffic_server pthread_mutex_trylock
2992 1.3554 traffic_server traffic_server do_strings_match_strongly(char const*, int, char const*, int)
2903 1.3151 traffic_server traffic_server ink_freelist_free
2712 1.2285 traffic_server traffic_server CacheContinuation::remoteOpEvent(int, Event*)

Running a callgraph report. I have seen where sometimes the callgraph has been wrong on Fedora 12 and we never call some of the functions listed in the callgraph.

bcall@snowball trafficserver$ opreport -c -g --symbols proxy/traffic_server

Google profiler

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.

  • No labels