
The Linux perf command rocks - pixelbeat
http://www.pixelbeat.org/programming/profiling/
======
js2
For a recent example of perf in practice, see "git gc: Speed it up by 18% via
faster hash comparisons" on the git mailing list

[http://thread.gmane.org/gmane.comp.version-
control.git/17228...](http://thread.gmane.org/gmane.comp.version-
control.git/172286)

------
ssp
Also take a look at sysprof:

<http://sysprof.com>

The 1.1.6 release uses the same kernel API as perf, but displays full call
trees. Screenshot:

<http://sysprof.com/screen-shot-4.png>

~~~
xtacy
Cool! The sysprof website says that there's a command line tool included, but
I can't find it. Do you have any info on that?

~~~
ssp
Yes, it's called sysprof-cli. It should be built and installed out of the box.

~~~
xtacy
Hmmm, I guess it's not available on Debian wheezy. I just installed sysprof
and sysprof-cli wasn't included in it.

I'll install it separately; thanks!

------
bcl
A few other tools I use are atop (more detailed top info, with logging),
iostat (harddrive io) and vmstat (memory and cpu details).

~~~
dkarl
Do you know of any manual or book-style treatment about using those tools for
investigating the performance of Linux systems? Every once in a while I have
to look at performance problems on Linux systems, but I always start from
zero. I need a place where I can study the topic and refresh myself when
necessary, because I'm apparently not capable of mastering it via occasional
piecemeal experience.

~~~
ghshephard
The closest I've found (and spent 10s, if not hundred+ hours reading) are:
System Performance Tuning, 2nd Edition (O'Reilly System Administration) by
Gian-Paolo D. Musumeci [1] and the somewhat dated (and Solaris centric) Sun
Performance and Tuning: Java and the Internet (2nd Edition) [2]

I'd love to hear that there were better book out there - if anyone has read
either of those two, and has found a better one, I'll be one-clicking it in 30
seconds.

[1] [http://www.amazon.com/System-Performance-Tuning-OReilly-
Admi...](http://www.amazon.com/System-Performance-Tuning-OReilly-
Administration/dp/059600284X/ref=sr_1_1?s=books&ie=UTF8&qid=1304012614&sr=1-1)

[2] [http://www.amazon.com/Sun-Performance-Tuning-Java-
Internet/d...](http://www.amazon.com/Sun-Performance-Tuning-Java-
Internet/dp/0130952494/ref=sr_1_8?s=books&ie=UTF8&qid=1304012614&sr=1-8)

------
loboman
Not cool... "sudo perf record -a -g sleep 10" crashed my system badly (not
even reisub would close it).

------
hallmark
Are these tools (perf, atop, etc) useful and accurate in virtualized
environments? For example, under Xen. Fine, I'll say it: on an EC2 or Linode
instance. Would there be any skewing or clock issues due to virtualization?

Collecting the comments of HN readers with deep experience in this matter, on
this thread, would be preferable to me trying to give a brief and uninformed
Google search summary.

~~~
JoshTriplett
Some features of perf will work perfectly in an emulated environment. Perf's
kernel tracing uses tracepoints in the kernel (built-in or dynamically patched
in), and those will work just fine. However, perf's use of CPU performance
counters will only handle those the virtual environment emulates; I don't know
if Xen implements those.

------
dsantos
the article mentions perf, valgrind, oprofile, etc. but misses the lttng tool

<http://lttng.org>

~~~
EventHorizon
Is there a better viewer for lttng than the lttv gui? I got spoiled by QNX's
amazing tracing infrastructure and analysis tools and long for something
similar on Linux.

~~~
dsantos
lttng is integrated into eclipse framework, the gui looks better than the gtk
lttv gui

------
joezydeco
Do any of these run on MIPS? Profiling for embedded Linux can really suck
sometimes...

~~~
dsantos
lttng currently runs on: x86-32, x86-64, SPARC, SPARC64, ppc, ppc64, sh, sh64,
ia64, s390, MIPS 32/64, ARM

------
me_again
For Windows, xperf is in the systemwide-profiler category:
<http://msdn.microsoft.com/en-us/performance/cc825801.aspx>

------
hexley
Is this like the "Sample" button in Activity Monitor on OS X?

~~~
dsantos
its more like instruments and shark tools that you can find in xcode

------
joelthelion
Does anyone know how to install it on Arch?

~~~
b6
maybe <https://aur.archlinux.org/packages.php?ID=31439>

------
vetler
Anyone know how to install this on CentOS?

