123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- perf-daemon(1)
- ==============
- NAME
- ----
- perf-daemon - Run record sessions on background
- SYNOPSIS
- --------
- [verse]
- 'perf daemon'
- 'perf daemon' [<options>]
- 'perf daemon start' [<options>]
- 'perf daemon stop' [<options>]
- 'perf daemon signal' [<options>]
- 'perf daemon ping' [<options>]
- DESCRIPTION
- -----------
- This command allows to run simple daemon process that starts and
- monitors configured record sessions.
- You can imagine 'perf daemon' of background process with several
- 'perf record' child tasks, like:
- # ps axjf
- ...
- 1 916507 ... perf daemon start
- 916507 916508 ... \_ perf record --control=fifo:control,ack -m 10M -e cycles --overwrite --switch-output -a
- 916507 916509 ... \_ perf record --control=fifo:control,ack -m 20M -e sched:* --overwrite --switch-output -a
- Not every 'perf record' session is suitable for running under daemon.
- User need perf session that either produces data on query, like the
- flight recorder sessions in above example or session that is configured
- to produce data periodically, like with --switch-output configuration
- for time and size.
- Each session is started with control setup (with perf record --control
- options).
- Sessions are configured through config file, see CONFIG FILE section
- with EXAMPLES.
- OPTIONS
- -------
- -v::
- --verbose::
- Be more verbose.
- --config=<PATH>::
- Config file path. If not provided, perf will check system and default
- locations (/etc/perfconfig, $HOME/.perfconfig).
- --base=<PATH>::
- Base directory path. Each daemon instance is running on top
- of base directory. Only one instance of server can run on
- top of one directory at the time.
- All generic options are available also under commands.
- START COMMAND
- -------------
- The start command creates the daemon process.
- -f::
- --foreground::
- Do not put the process in background.
- STOP COMMAND
- ------------
- The stop command stops all the session and the daemon process.
- SIGNAL COMMAND
- --------------
- The signal command sends signal to configured sessions.
- --session::
- Send signal to specific session.
- PING COMMAND
- ------------
- The ping command sends control ping to configured sessions.
- --session::
- Send ping to specific session.
- CONFIG FILE
- -----------
- The daemon is configured within standard perf config file by
- following new variables:
- daemon.base:
- Base path for daemon data. All sessions data are
- stored under this path.
- session-<NAME>.run:
- Defines new record session. The value is record's command
- line without the 'record' keyword.
- Each perf record session is run in daemon.base/<NAME> directory.
- EXAMPLES
- --------
- Example with 2 record sessions:
- # cat ~/.perfconfig
- [daemon]
- base=/opt/perfdata
- [session-cycles]
- run = -m 10M -e cycles --overwrite --switch-output -a
- [session-sched]
- run = -m 20M -e sched:* --overwrite --switch-output -a
- Starting the daemon:
- # perf daemon start
- Check sessions:
- # perf daemon
- [603349:daemon] base: /opt/perfdata
- [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
- [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a
- First line is daemon process info with configured daemon base.
- Check sessions with more info:
- # perf daemon -v
- [603349:daemon] base: /opt/perfdata
- output: /opt/perfdata/output
- lock: /opt/perfdata/lock
- up: 1 minutes
- [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
- base: /opt/perfdata/session-cycles
- output: /opt/perfdata/session-cycles/output
- control: /opt/perfdata/session-cycles/control
- ack: /opt/perfdata/session-cycles/ack
- up: 1 minutes
- [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a
- base: /opt/perfdata/session-sched
- output: /opt/perfdata/session-sched/output
- control: /opt/perfdata/session-sched/control
- ack: /opt/perfdata/session-sched/ack
- up: 1 minutes
- The 'base' path is daemon/session base.
- The 'lock' file is daemon's lock file guarding that no other
- daemon is running on top of the base.
- The 'output' file is perf record output for specific session.
- The 'control' and 'ack' files are perf control files.
- The 'up' number shows minutes daemon/session is running.
- Make sure control session is online:
- # perf daemon ping
- OK cycles
- OK sched
- Send USR2 signal to session 'cycles' to generate perf.data file:
- # perf daemon signal --session cycles
- signal 12 sent to session 'cycles [603452]'
- # tail -2 /opt/perfdata/session-cycles/output
- [ perf record: dump data: Woken up 1 times ]
- [ perf record: Dump perf.data.2020123017013149 ]
- Send USR2 signal to all sessions:
- # perf daemon signal
- signal 12 sent to session 'cycles [603452]'
- signal 12 sent to session 'sched [603453]'
- # tail -2 /opt/perfdata/session-cycles/output
- [ perf record: dump data: Woken up 1 times ]
- [ perf record: Dump perf.data.2020123017024689 ]
- # tail -2 /opt/perfdata/session-sched/output
- [ perf record: dump data: Woken up 1 times ]
- [ perf record: Dump perf.data.2020123017024713 ]
- Stop daemon:
- # perf daemon stop
- SEE ALSO
- --------
- linkperf:perf-record[1], linkperf:perf-config[1]
|