| perf-timechart(1) | |
| ================= | |
| NAME | |
| ---- | |
| perf-timechart - Tool to visualize total system behavior during a workload | |
| SYNOPSIS | |
| -------- | |
| [verse] | |
| 'perf timechart' [<timechart options>] {record} [<record options>] | |
| DESCRIPTION | |
| ----------- | |
| There are two variants of perf timechart: | |
| 'perf timechart record <command>' to record the system level events | |
| of an arbitrary workload. By default timechart records only scheduler | |
| and CPU events (task switches, running times, CPU power states, etc), | |
| but it's possible to record IO (disk, network) activity using -I argument. | |
| 'perf timechart' to turn a trace into a Scalable Vector Graphics file, | |
| that can be viewed with popular SVG viewers such as 'Inkscape'. Depending | |
| on the events in the perf.data file, timechart will contain scheduler/cpu | |
| events or IO events. | |
| In IO mode, every bar has two charts: upper and lower. | |
| Upper bar shows incoming events (disk reads, ingress network packets). | |
| Lower bar shows outgoing events (disk writes, egress network packets). | |
| There are also poll bars which show how much time application spent | |
| in poll/epoll/select syscalls. | |
| TIMECHART OPTIONS | |
| ----------------- | |
| -o:: | |
| --output=:: | |
| Select the output file (default: output.svg) | |
| -i:: | |
| --input=:: | |
| Select the input file (default: perf.data unless stdin is a fifo) | |
| -w:: | |
| --width=:: | |
| Select the width of the SVG file (default: 1000) | |
| -P:: | |
| --power-only:: | |
| Only output the CPU power section of the diagram | |
| -T:: | |
| --tasks-only:: | |
| Don't output processor state transitions | |
| -p:: | |
| --process:: | |
| Select the processes to display, by name or PID | |
| --symfs=<directory>:: | |
| Look for files with symbols relative to this directory. | |
| -n:: | |
| --proc-num:: | |
| Print task info for at least given number of tasks. | |
| -t:: | |
| --topology:: | |
| Sort CPUs according to topology. | |
| --highlight=<duration_nsecs|task_name>:: | |
| Highlight tasks (using different color) that run more than given | |
| duration or tasks with given name. If number is given it's interpreted | |
| as number of nanoseconds. If non-numeric string is given it's | |
| interpreted as task name. | |
| --io-skip-eagain:: | |
| Don't draw EAGAIN IO events. | |
| --io-min-time=<nsecs>:: | |
| Draw small events as if they lasted min-time. Useful when you need | |
| to see very small and fast IO. It's possible to specify ms or us | |
| suffix to specify time in milliseconds or microseconds. | |
| Default value is 1ms. | |
| --io-merge-dist=<nsecs>:: | |
| Merge events that are merge-dist nanoseconds apart. | |
| Reduces number of figures on the SVG and makes it more render-friendly. | |
| It's possible to specify ms or us suffix to specify time in | |
| milliseconds or microseconds. | |
| Default value is 1us. | |
| RECORD OPTIONS | |
| -------------- | |
| -P:: | |
| --power-only:: | |
| Record only power-related events | |
| -T:: | |
| --tasks-only:: | |
| Record only tasks-related events | |
| -I:: | |
| --io-only:: | |
| Record only io-related events | |
| -g:: | |
| --callchain:: | |
| Do call-graph (stack chain/backtrace) recording | |
| EXAMPLES | |
| -------- | |
| $ perf timechart record git pull | |
| [ perf record: Woken up 13 times to write data ] | |
| [ perf record: Captured and wrote 4.253 MB perf.data (~185801 samples) ] | |
| $ perf timechart | |
| Written 10.2 seconds of trace to output.svg. | |
| Record system-wide timechart: | |
| $ perf timechart record | |
| then generate timechart and highlight 'gcc' tasks: | |
| $ perf timechart --highlight gcc | |
| Record system-wide IO events: | |
| $ perf timechart record -I | |
| then generate timechart: | |
| $ perf timechart | |
| SEE ALSO | |
| -------- | |
| linkperf:perf-record[1] |